[英]Entity Framework's DBContext doesn't update database
我正在嘗試為我管理的數據庫創建一行。 我嘗試構建一個代碼作為示例來檢查其是否正常運行,但是它不會更新數據庫:
PolicyList = await LoadPolicy(); //Loads Policy List
tblPolicy tbl = new tblPolicy(); //Creates a new policy entity
tbl.polID = 5; //Sets ID to 5
tbl.polName = "Ryder"; //Sets name
mdbe.tblPolicies.Add(tbl); //Adds to the dbcontext object
mdbe.Entry(tbl).State = EntityState.Added; //Changes the state to "Added"
await mdbe.SaveChangesAsync(); //Saves changes
無論我是否使用異步方法都行不通,EntityState.Added也是如此。 如何保存更改?
private async Task<List<tblPolicy>> LoadPolicy()
{
return await Task.Run(() => mdbe.tblPolicies.ToList());
}
mdbe定義:
EntryDBEntities mdbe = new EntryDBEntities();
POCO的entryDBentities類:
public partial class EntryDBEntities : DbContext
{
public EntryDBEntities()
: base("name=EntryDBEntities")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public virtual DbSet<tblEntry> tblEntries { get; set; }
public virtual DbSet<tblEntryPolicy> tblEntryPolicies { get; set; }
public virtual DbSet<tblPolicy> tblPolicies { get; set; }
}
您應該刪除代碼中不必要的/多余的部分,並創建一個MVE( 最小,完整和可驗證的示例 )進行測試。
using(EntryDBEntities mdbe = new EntryDBEntities())
{
// PolicyList = await LoadPolicy(); // do not include this, it has nothing to do with adding a new entity based on the code you have shown
tblPolicy tbl = new tblPolicy(); //Creates a new policy entity
tbl.polID = 5; //Sets ID to 5
tbl.polName = "Ryder"; //Sets name
mdbe.tblPolicies.Add(tbl); //Adds to the dbcontext object
await mdbe.SaveChangesAsync(); //Saves changes
}
上面的片段應在基礎數據庫中添加一個新的tblPolicy
,這是執行此操作所需的最低代碼。
如果此“行不通”,請提供以下信息:
tblPolicy
的完整映射
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.