微型orm工具在应用程序架构中的位置

时间:2012-07-28 12:03:10

标签: c# data-access-layer business-logic-layer ormlite-servicestack micro-orm

这样的简单陈述:“从客户中选择x,y,z”位于数据访问层中。

如果查询中存在逻辑,例如过滤来自某个城市的客户,我必须将过滤放在我的业务层中,并在内存中的客户集合中进行。

当我现在考虑Micro ORM工具时,他们经常使用逻辑显示Sql语句:

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

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

语句中有逻辑,应该属于Business Layer。但后来我

在BLL中选择语句?

这一切都令人困惑。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

在我看来,这是个人偏好。我喜欢接近使用它们的方法的SQL,除非需要在不同的BLL类之间共享它们。它使更改更容易。对于简单的操作,您可以使用Dapper.Simple Crud之类的扩展方法,这样您就不会一遍又一遍地编写相同的操作。您可以查看我的github repo进行实施。我把它放在了{-3}上的Micro-ORM上。该解决方案包含Massive,Dapper,PetaPoco和Simple.Data的示例用法。这是一个my talk到一个服务类,所以你不必太多挖掘。如果您有任何建议,请告诉我甚至更好地向我发送拉取请求。 :)