对于一个中小型项目,我试图找出拥有域层和数据访问层的“理想”方式。我对耦合的看法更倾向于认为领域模型不应该与数据库层紧密耦合,换句话说,数据访问层实际上不应该了解有关领域对象的任何信息。
我一直在研究 Linq-to-sql,它想要使用它创建的自己的模型,因此它最终会非常紧密地耦合。虽然我喜欢在代码中使用 linq-to-sql 的方式,但我真的不喜欢它创建自己的域对象的方式。
我应该考虑哪些替代方案?我尝试使用 NHibernate,但我不喜欢我必须用来查询和获取不同对象的方式。老实说,我很喜欢 linq 的语法和使用方式,我只是不希望它与域对象如此紧密地耦合。
最佳答案
如果您不希望域与数据库紧密耦合,那么您的选择几乎是:
- NHibernate
- Entity Framework
NHibernate 和 Entity Framework 都支持 LINQ 查询,尽管 Entity Framework 的 LINQ 支持据称优于 NHibernate。我同意 HQL 和 Criteria 查询并不像 LINQ 那样优雅,但我有一种感觉,NHibernate 的 LINQ 支持将在 3.0 版本中得到极大改进。
关于c# - ASP.NET MVC2 数据访问层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2748086/