C# 实体框架-采用什么方法保存数据

C# 实体框架-采用什么方法保存数据,c#,entity-framework,.net-4.0,dbcontext,C#,Entity Framework,.net 4.0,Dbcontext,我使用最新的EF5,采用代码优先的方法。 我的存储库是一个非静态类。 问题-如果我想正确更新数据,我可以采取以下两种方法之一: 创建一个存储库实例,并将其放在我的应用程序中 保存时执行以下操作: 例如: var foo = myDbContext.MyObjects .First(object => object.Id = idOfObjectIWantToSave) foo.PropertyToUpdate = newValue; ctx.SaveChang

我使用最新的EF5,采用代码优先的方法。 我的存储库是一个非静态类。 问题-如果我想正确更新数据,我可以采取以下两种方法之一:

  • 创建一个存储库实例,并将其放在我的应用程序中
  • 保存时执行以下操作:
  • 例如:

    var foo = myDbContext.MyObjects
                  .First(object => object.Id = idOfObjectIWantToSave)
    
    foo.PropertyToUpdate = newValue;
    ctx.SaveChanges();
    

    最好的方法是什么?为DAL创建一个静态类也是可能的,但我已经阅读了[关于stackoverflow]这不是一个好主意。

    后者有什么问题?人们建议不要创建静态类,因为EF上下文背后的思想是通过设计执行单个工作单元,因此创建成本较低。@Steve B实际上是两种类型都使用的程序集。.上下文不仅仅是一个存储库。每个工作单元都需要使用一个上下文,但此时只需将其传递出去。@John Saunders所以我认为您是在建议第二种方法?如果您使用导航属性并修改链接实体,当然会这样。