IDの主キーを持つテーブルがあります。このフィールドはID列ではありません。 Entity Framework 6のマイグレーションはEntity Framework非同一性 - 列 'ID'にNULL値を挿入できません
CreateTable(
"dbo.Action",
c => new
{
ID = c.Int(nullable: false, identity: false),
ActionName = c.String(maxLength: 50),
})
.PrimaryKey(t => t.ID);
です。これはすべて私にとってはまっすぐに見えます。
public static void Seed(this DbSet<Action> entitySet)
{
MainContext dbCtx = DataRepositoryBase<Action>.GetContext(entitySet) as MainContext;
if (dbCtx != null)
{
entitySet.Add(new Action()
{
ID = 1,
ActionName = "Test"
});
}
}
それは私がエラー
「の列にNULL値を挿入することはできません 『ID』、テーブル 『dbo.Action』を取得し、この時点でです。そして、私はいくつかのデータをシードする方法を持っています; 列はNULLを許可しないINSERTが失敗した\私ははっきりとID列の値を提供しています見ることができるように、Rの\ nこのステートメントは は「
を終了しました。。。私の疑惑は、Entity FrameworkはIDがID列
ことを期待しているエンティティ・クラスが
[DataContract]
public class Action
{
[DataMember]
public int ID { get; set; }
[DataMember]
public string ActionName { get; set; }
}
を使用して、それを修正することができますか? –
ID列がID列ではないことをEFに伝えましたか? – DavidG
アイデンティティを言うとき、マイグレーションで私がやっていることは間違いありません:偽 – keitn