我的数据库中有两个表,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?