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

使用实体框架代替语句的缺点?分享

时间:2023-04-10 19:24:27 C#

使用实体框架代替语句的缺点?有很多这样的代码块:publicclassSomeController:Controller{DbEntitiesentity=newDbEntities();publicActionResultAdd(){entity.someOperations...returnView();}publicActionResultEdit(){entity.someOperations...返回视图();}publicActionResultDetail(){entity.someOperations...returnView();}publicActionResultDetail(){entity.someOperations...returnView();}.....我应该改变这样的方法吗?:publicclassSomeController:Controller{publicActionResultAdd(){using(DbEntitiesentity=newDbEntities()){entity.someOperations...}returnView();.....在EF中不使用using-statement有什么问题?或者最好的方法是什么?另外,如果我们使用using-statement块也会增长。谢谢...using-declaration方法是您在上面建议的两种方法中最好的一种。使用这种方法,您可以确保ObjectContext在使用后关闭和处理。使用您的其他方法,可以假设ObjectContext可以保持未关闭状态,从而绑定到数据库的连接。要实际查看这一点,请尝试使用其他方法创建一个示例应用程序,然后使用EFProfiler对其进行分析,并观察ObjectContext打开的数量,同时关闭的数量显着减少。我最近参与了一个项目,该项目在您的第二种模式使用率高的情况下遇到了数据库问题(您可以在此处查看我的问题)。由于我没有足够的时间处理太大的项目/代码库,因此我无法选择切换到using语句方法。相反,我实现了以下内容以手动强制将ObjectContext放置在Global.asax中的DbContext上(我在DbContext的静态实例上有一个DbContext实例:protectedvoidApplication_EndRequest(objectsender,EventArgse){BusinessLayerService.Instance.Dispose();BusinessLayerService.Instance=null;}但是,如果你用选项启动项目:我强烈推荐使用using模式如果你使用using语句,上面的例子没有什么大问题,但是当dbContext是一个局部变量时,很难提供代码来写单元测试.如果你不遵循Repository,UnitofWork之类的任何设计模式并且不想写单元测试,那么将所有逻辑包装在using语句中是最好的选择以上就是C#学习教程:使用实体框架代替语句的缺点?分享的全部内容,如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注.本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: