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

实体框架和MVC在业务层或数据访问层创建DbContext分享

时间:2023-04-10 12:26:50 C#

entityframeworkandMVCCreateDbContextinBusinessLayerorDataAccessLayer我是EntityFramework和.NET的新手,正在开发和构建MVC4应用程序。我对应该在哪里创建数据库上下文实例感到有点困惑。在我的应用程序中,我有几个层:Web、业务、数据访问、数据库(这些都是单独的项目)。在数据访问层,每个表都有一个类。我看到的一个示例显示在数据访问层中的每个方法中创建上下文(我可能误解了它)。当更新多个表作为业务逻辑的一部分时,这似乎不太实用。似乎在每个数据访问层方法中创建一个新上下文的结果都是这个错误:更新多个表时,一个实体对象不能被多个IEntityChangeTracker实例引用。那么在业务层方法中创建上下文然后传递给数据访问层方法是否可以接受?或者,还有更好的方法?上下文来自业务层,如:publicUserRetrieveUserById(intid,MyDbContextctx){UserfindUser=ctx.Users.Find(id);返回查找用户;}而不是在数据访问层方法中创建上下文:publicUserRetrieveUserById(intid){varctx=newMyDbContext();用户findUser=ctx.Users.Find(id);返回查找用户;感谢帮助!数据访问层。创建一个与DbContext一起存在于数据层中的“工作单元”类。尝试搜索“Asp.net工作模式单元”。http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/implementing-the-repository-and-unit-of-work-patterns-in-an-asp-net-MVC-App1基本上它是将多个存储库/表组合在一起的中心位置,因此您可以在不处理上下文的情况下对多个存储库执行操作。您不必完全按照所示使用它。您可以修改它以满足您的需要。以上就是C#学习教程:实体框架和MVC在业务层或数据访问层创建DbContext分享的所有内容。如果对大家有用,需要了解更多C#学习教程,希望大家多多关注——本文来自网络合集,不代表立场,如涉及侵权,请点击右转联系管理员删除。如需转载请注明出处: