2014-06-16 191 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。