我刚开始致力于一个ASP.net应用程序中的实体框架,我想知道是否有人可以指出最佳实践的正确方向。我有以下列出的一些问题。ASP.Net中的实体框架最佳实践
首先我使用的是实体框架4.0。我已经创建了我的数据库,因此我创建了一个类库,并从数据库中生成实体模型。我一直在使用数据库生成的Guids,所以我必须修改ssl以包含属性
StoreGeneratedPattern="Identity"
。有没有办法自动做到这一点,或者我每次更新数据库和模型时都必须手动编辑ssl? (对于那些你知道正面临问题的GUID或想知道为什么我这样做.. this is a clear article对自动生成的GUID问题)我打算在类库中使用单个文件保存所有的数据库查询。这是好的做法吗?我如何确保不同的程序员不会一遍又一遍地重写相同的查询?
我打算在每种方法中使用独特的上下文。这是正确的路吗?我通过Rick Strahl's post了解了上下文生命周期管理。但我仍然不确定每种方法的独特上下文是否是正确的方法。
我可以将我的数据库查询作为静态方法使用,因为它们没有使用任何实例变量?
如果我使用每个方法的独特上下文,如3所述,并且我希望修改由一个上下文返回的实体对象,那么最佳实践是什么?我是否使用附加功能将对象附加到新的上下文并保存更改?我没有试过这个,但我已经阅读了几篇文章,看起来有点直接,但想知道是否有任何替代方案。
如果您有任何关于如何在ASP.net应用程序中使用实体框架的建议,我绝对可以使用帮助。这是我第ASP.net/Entity框架应用程序,这样任何提示将帮助
谢谢拉迪斯拉夫,帮助。关于你的意见 - 1.问题和修复你提到Guids的问题意味着我仍然需要去编辑设计器中的属性,它会在ssl和csl中添加必需的属性?我不完全理解你对4的评论。我认为存储库模式必须将业务逻辑从数据访问中分离出来。 – nighthawk457
当我问这个问题时,我实际上假设我会为每个方法创建datacontext,并将它包裹在'using'块中,因此思考static是正确的选项。我是否有任何优势将我的方法声明为静态?感谢您的信息,我确实有一些后续问题,但我会为此做一个单独的帖子 – nighthawk457