我的基表已经有一些寄存器ID = 5。 如何在专用表上添加相同的ID?
示例:
BaseTable
ID INT
Name Varchar(100)
DerivedTable
ID INT
Test BIT
我在基表上插入了一些值
Context.BaseTable.Add(new BaseTable(){ Name = '123' });
Context.SaveChanges();
身份是5
现在我想添加专门的值
Context.DerivedTable.Add(new DerivedTable(){ ID = 5, Test = 1 });
Context.SaveChanges();
它不起作用,linqpad向我显示sql正在尝试创建一个新的BaseTable寄存器。
这有什么方法可以解决这个问题吗?
韩国社交协会
答案 0 :(得分:2)
如果将它映射为继承(EDMX TPT,Code first TPT),则不能单独插入基表(它很可能是模型中的抽象类)。您必须只插入派生表,EF将处理两个映射表的插入:
Context.DerivedTable.Add(new DerivedTable(){ Name = "123", Test = 1 });
Context.SaveChanges();