0

EF、DbContext、および SaveChanges() メソッドで奇妙な問題が発生しています。EF 5、.NET 4.5、および LocalDB を使用しています。私は Code First EF を使用しており、データベースを自動的に作成します。

問題は、db.SaveChanges() 呼び出しが呼び出されなかった後のことです。次に例を示します。

private void Form1_Load(object sender, EventArgs e)
    {

        using (var db = new DataLayer.DataContext())
        {
            Group g = new Group {
                Id = 0,
                Gid = "019282",
                Name = "Admin"
            };

            db.Groups.Add(g);
            db.SaveChanges();
        }

        MessageBox.Show("Testing");

    }

MessageBox も表示されません。何が起こっているのか分かりますか?エラーをスローしていないので、デバッグすることさえできません。

編集:

出力で次のことがわかりました。多分それが理由です。しかし、なぜ例外がスローされないのでしょうか?

A first chance exception of type 'System.InvalidOperationException' occurred in EntityFramework.dll

編集:

モデルからプロパティを削除したときに移行しなかったのは私のせいだと思います。

4

2 に答える 2

0

テーブルの主キーは何ですか? Id の場合は、自動インクリメント フィールドである可能性があります。ゼロに設定する代わりに、そのままにして、機能するかどうかを確認してください。

using (var db = new DataLayer.DataContext())
{
    Group g = new Group {
            Gid = "019282",
            Name = "Admin"
        };

        db.Groups.Add(g);
        db.SaveChanges();
}
于 2013-09-05T22:36:49.543 に答える
0

SQL プロファイラーを使用して、LocalDB インスタンスに対して SQL が実行されているかどうかを確認しましたか?

モデルに矛盾がある場合は、自動移行を有効にすることができます。データ損失を許可するかどうかを示す、モデルに対して設定できるフラグもあります - AutomaticMigrationDataLossAllowed :

Database.SetInitializer(new MigrateDatabaseToLatestVersion<DataContext, Configuration>());

自動移行

于 2013-09-05T21:55:55.747 に答える