2

像这样的简单语句:“Select x,y,z From Customer”位于数据访问层中。

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

当我现在考虑 Micro ORM 工具时,它们经常显示带有如下逻辑的 Sql 语句:

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

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

语句内部有逻辑,应该属于业务层。但后来我有

在我的 BLL 中选择语句??

这一切都令人困惑。

4

2 回答 2

0

在我看来,这是个人喜好。我喜欢接近使用它们的方法的 SQL,除非需要在不同的 BLL 类之间共享它们。它使更改更容易。对于简单的操作,您可以使用Dapper.Simple Crud之类的扩展方法,这样您就不必一遍又一遍地编写相同的操作。你可以看看我的github repo来实现。我把它放在一起讨论Micro-ORM。该解决方案具有 Massive、Dapper、PetaPoco 和 Simple.Data 的示例用法。这是其中一个服务类的链接,因此您不必深入研究。如果您有任何建议,请告诉我,或者更好地向我发送拉取请求。:)

于 2013-07-15T16:37:15.567 回答
0

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

于 2012-07-28T13:05:09.930 回答