0

タイトルが示すように、ローカル データベースへの書き込みに問題があります。これから edmx モデルを生成しましたが、簡単に読み取ることができます。

EDMXNS.TOWDataBasev1Entities db = new EDMXNS.TOWDataBasev1Entities();

var query = from p in db.Accounts select p;

foreach (EDMXNS.Accounts s in query)
    Console.WriteLine(s.AccountName);

それはうまくいきます。しかし、データベースに書き込もうとしても、何も起こりません。エラーや例外などは発生しません。データベースから読み取ることができるので、接続の問題ではないと思います。

これが私が書くためのコードです。

EDMXNS.TOWDataBasev1Entities db = new EDMXNS.TOWDataBasev1Entities();
EDMXNS.Accounts acc = new EDMXNS.Accounts();

acc.AccountID = 1;
acc.AccountName = "testuser";
acc.AccountPW = "testpw";
acc.PersonDataID = 0;

db.AddToAccounts(acc);
db.SaveChanges();

Accounts.AccountID に ID/自動インクリメントがあることを意味することは価値がありますが、次の既知の値に設定するか、まったく設定しないようにしました。

この問題の原因について誰か考えがありますか?

編集:カスタムネームスペースを削除し、データベースのすべてのレコードを削除して、すべて再インポートしようとしました。

カスタム ツールの名前空間を削除すると、次のようなエラーが発生します。

それは私に何も教えてくれません。

すべてを再インポートすると、「指定されたメタデータ リソースを読み込めません」という例外が発生するようになりました。

4

1 に答える 1

0

EF でレコードを追加するときは、常にこの形式を使用してきました。次の形式を試してみてください。

using (MovieStoreEntities context = new MoveStoreEntities()) 
    { 
      try 
      { 

        context.Movies.AddObject(new Movie() { MovieID = 234,  
             Title = "Sleepless Nights in Seattle", Quantity = 10 }); 
        context.SaveChanges(); 
      } 
      catch(Exception ex)  
      { 
        Console.WriteLine(ex.InnerException.Message);  
      } 
    } 
于 2012-12-26T10:55:19.043 に答える