当前位置: 首页 > 编程语言 > C#

如果EntityFramework-DbContext是DAL-Repository,它在什么地方适合3层架构?分享

时间:2023-04-11 10:33:48 C#

如果EntityFramework/DbContext是DAL/Repository,它在三层架构中的位置在哪里?我一直在阅读StackOverflow和其他有关最佳架构实践的网站,其中有很多相互矛盾的想法和意见。我终于找到了一种方法,但我无法确定将EF对象(DbContext、FluentAPI、种子数据等)放在哪里。这是我目前拥有的:ASP.NETMVC项目:实际的Web项目。包含标准视图、控制器和视图模型(在模型文件夹中)。域模型项目:包含定义数据库(域)对象的所有POCO类。当前,未提及或引用任何EF对象。服务层项目:包含每种类型领域对象的服务对象(例如,IProductService、IOrderService等)。每个服务都引用像DbSets这样的EF对象并处理业务规则——例如,添加产品、获取产品、将产品附加到订单等。所以问题是,EF类在这个配置中放在哪里?最初我想到了服务层,但那似乎没有意义。然后我想把它们放在领域模型层,但是它将领域模型绑定到EF,EF本质上是一个DAL/Repository。最后,我考虑为EF创建一个单独的DAL项目,但考虑到它可能有3-4个文件(DbContext和其他一些小文件),这似乎是一种巨大的浪费。谁能提供任何指导?不需要域模型,因为它是多余的。EF类可以直接充当域模型,并在将它们发送到视图时将它们转换为视图模型。EF可以分为不同的类库。他们中的大多数人使用存储库模式以及任何ORM,如果他们要替换它们会很容易。但是我看到了对使用存储库模式的批评,请检查一下。这是我所做的:数据:实体:服务:业务:客户端(桌面/Web/Wpf/等)。我并不是说这是最好的方法,我只是分享对我有用的方法。以上是C#学习教程:如果EntityFramework/DbContext是DAL/Repository,它在什么地方适合3层架构?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: