阻止实体框架插入基础实体表

时间:2016-06-06 19:16:37

标签: c# sql-server entity-framework

我的数据库中有两个表,T1和amp; T2。我在E1& amp;中创建了相应的实体。 E2。这里E2来自E1。

E1映射到T1表,E2映射到T2表。所以我的应用程序从T1表中读取E1。但是,对于任何创建/更新/删除操作,E1被强制转换为E2并且应该保存到T2中。但是现在当EF试图保存E2时,它也试图将E2.base(即E1)保存到T1表中。在更新的情况下,这会引发异常(违反PK约束),因为表T1中已存在具有实体标识的记录。

表T2的目的是有一个批准阶段,一旦批准E2~T2的变化,变更应反映在T1表中。

从E1导出E2的目的也是因为,E1为表T1和表提供了身份。 T2,因此E2仅指定对E1对象执行的操作。

如果我不够混淆,请看一下:

T1 (int id, varchar(50) name)
T2 (int id, varchar(50) name, varchar(50) operation)

[Table("T1")]
class E1 { [Key]int id, string name}

[Table("T2")]
class E2 : E1 {string operation}

所以我的问题是,在保存E2时,我如何才能将实体框架仅保存到T2而不是T1?

0 个答案:

没有答案