2014-06-16 136 views
0

我是EF新手,我只使用过EF 6。当我使用它来访问我已经设计的数据库中的数据时,我没有看到任何方法允许我操纵数据。为了解决这个问题,我创建了一些存储过程来添加,删除和更新数据。 我想知道我所做的是在EF中操作数据的正确方法。如果它不是正确的方法,我该如何使用EF6的内置功能来做到这一点。 MSDN表示有一个添加对象,但找不到它。实体框架6:数据操作

+0

虽然你当然可以使用存储过程来执行CRUD操作并将EF与这些操作一起使用,但如果这是你走向的方向,那么它会失败使用OR/M执行数据访问的目的。您能否提供一些关于您的数据库本身以及您使用EF6的工作流程的更多信息(例如,Code First或Model First的SQL Server)。 –

回答

5

API已经发生了一些变化。 EF6不再使用ObjectContext,它使用DbContext。这可以从数据库模型生成,或使用模型优先方法创建。

旧语法:

objectContext.AddToUsers(user); 

现在是:

dbContext.Users.Add(user); 

下面是一些基本的样本:

插入:

using(var dbContext = new MyDbContext()) 
{ 
    var user = new User { ID=1, Name="Test" }; 
    dbContext.Users.Add(user); // Add user 
    dbContext.SaveChanges(); // Save changes to DB 
} 

更新:

using(var dbContext = new MyDbContext()) 
{ 
    var user = dbContext.Users.Find(1);// find by ID = 1 
    user.Name = "New Name"; // Change name 
    dbContext.SaveChanges(); // Save changes to DB 

} 

删除:

using(var dbContext = new MyDbContext()) 
{ 
    var user = dbContext.Users.Find(1);// find by ID = 1 
    dbContext.Users.Remove(user); // delete user 
    dbContext.SaveChanges(); // Save changes to DB 
} 

因此,无需对存储过程.. definetly不需要简单的CRUD。