2017-01-11 9 views
0

管理しているデータベースの行を作成しようとしています。 私はそれが働いているかどうかを確認するための例として、コードをビルドしようとしましたが、それはデータベースを更新しません:Entity FrameworkのDBContextでデータベースが更新されない

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(); 

entryDBentitiesのPOCOクラス:

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; } 
} 

Mapping of the entity framework

+4

のための完全なマッピングを含めます。 –

+0

更新されないデータベースはどれですか?私はその問題をどのように確認するのですか? – Mahdi

+2

例外がスローされますか? – AdrienTorris

答えて

1

あなたはあなたのコードのに、不要な/ extranious部分を削除し、MVEを作成する必要があります(Minimal, Complete, and Verifiable example)を使用してテストします。

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を追加し、そうする最低限必要なコードであるべきです。これは、「動作しない」場合は

以下を提供してください:

  1. それは動作しませんどのように?例外がスローされた場合は、例外のすべてのプロパティ(スタックトレース、メッセージ、型、および内部例外の場合も同じ)を指定してください。
  2. 結果が表示されない場合は、エンティティが作成または追加されていないことを店舗で確認する方法を説明してください。これは、VSからアプリケーションを実行するときに、ローカルデータベース上の.mdfファイルをオーバーライドするだけで簡単に行うことができます。
  3. 完全なソースコードを投稿してくださいエンティティtblPolicy
+0

それは私のデータベースを更新しないだけで、例外はスローされません。 私はそれをデータベース上のデータを見て確認していますが、同じままであることがわかります。私は質問のマッピングを更新しました – Refi

関連する問題