位于应用程序体系结构中的微型orm工具在哪里

问题描述:

像这样的简单语句:“从客户中选择x,y,z”位于数据访问层中。位于应用程序体系结构中的微型orm工具在哪里

如果查询中存在逻辑,例如为来自某个城市的客户进行过滤,那么我必须在我的业务层中进行过滤,然后在内存中的客户收集中进行过滤。

当我现在把微型ORM工具,他们经常表现出与像逻辑SQL语句:

var a = db.SingleOrDefault<Product>("SELECT * FROM SalesLT.Product WHERE ProductID = @0, 123); 

我应该在哪里现在就把这行代码?在业务层还是数据访问层?

声明中有属于业务层的逻辑。但后来我有

选择语句内我的BLL ?? ??

这是令人困惑的。

+0

你有没有使用传统的ORM做任何工作?如果是的话,你把它放在哪里 – 2012-07-28 13:05:55

+1

如果我使用EF,那么我会在业务逻辑层看到存储库,因为EF本身就是DAL。 – Pascal 2012-07-28 13:21:49

如果您需要3层模型,则需要在数据访问层上使用数据库上下文或微型orm。

+0

如果我想要一个3层模型,并且将微Orm放在DAL中(如您所说),当我使用微Orm工具进行复杂的连接等时,我的业务逻辑层中有什么? – Pascal 2012-07-28 13:23:08

在我看来,这是个人喜好。我喜欢接近使用它们的方法的SQL,除非需要让它们在不同的BLL类之间共享。它使变化更容易。对于简单的操作,你可以使用扩展方法,如Dapper.Simple Crud,这样你就不会一遍又一遍地写相同的操作。你可以看看我的github repo的实施。我将它放在Micro-ORM上的my talk。该解决方案具有Massive,Dapper,PetaPoco和Simple.Data的示例用法。这里有一个link对一个服务类,所以你不必深入挖掘。如果您有任何建议,请让我知道,或者更好地向我发送拉取请求。 :)