0
我是EF新手,我只使用过EF 6。当我使用它来访问我已经设计的数据库中的数据时,我没有看到任何方法允许我操纵数据。为了解决这个问题,我创建了一些存储过程来添加,删除和更新数据。 我想知道我所做的是在EF中操作数据的正确方法。如果它不是正确的方法,我该如何使用EF6的内置功能来做到这一点。 MSDN表示有一个添加对象,但找不到它。实体框架6:数据操作
我是EF新手,我只使用过EF 6。当我使用它来访问我已经设计的数据库中的数据时,我没有看到任何方法允许我操纵数据。为了解决这个问题,我创建了一些存储过程来添加,删除和更新数据。 我想知道我所做的是在EF中操作数据的正确方法。如果它不是正确的方法,我该如何使用EF6的内置功能来做到这一点。 MSDN表示有一个添加对象,但找不到它。实体框架6:数据操作
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。
虽然你当然可以使用存储过程来执行CRUD操作并将EF与这些操作一起使用,但如果这是你走向的方向,那么它会失败使用OR/M执行数据访问的目的。您能否提供一些关于您的数据库本身以及您使用EF6的工作流程的更多信息(例如,Code First或Model First的SQL Server)。 –