继承 - 仅在专用表上插入记录

时间:2012-01-26 22:30:11

标签: entity-framework entity-framework-4 entity-framework-4.1

我的基表已经有一些寄存器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寄存器。

这有什么方法可以解决这个问题吗?

韩国社交协会

1 个答案:

答案 0 :(得分:2)

如果将它映射为继承(EDMX TPTCode first TPT),则不能单独插入基表(它很可能是模型中的抽象类)。您必须只插入派生表,EF将处理两个映射表的插入:

Context.DerivedTable.Add(new DerivedTable(){ Name = "123", Test = 1 });
Context.SaveChanges();