C# oracle实体framwork 5的context.SaveChanges()中存在无效操作异常

C# oracle实体framwork 5的context.SaveChanges()中存在无效操作异常,c#,entity-framework,oracle11g,ef-database-first,C#,Entity Framework,Oracle11g,Ef Database First,我使用Oracle EF 5.0提供程序。oracle11g数据库。 以下是我的数据库架构: 表的Id作为主键。对于数据库中的每个表,都有一个触发器,它在插入新记录时触发,并在从序列中插入后EF get primary key。为每个表创建序列。 在我的edmx文件中,每个ID列都有一个StoreGeneratedPattern=“Identity”属性集 我的代码是: using (var context = new Entities()) { var title = new T

我使用Oracle EF 5.0提供程序。oracle11g数据库。 以下是我的数据库架构:

表的Id作为主键。对于数据库中的每个表,都有一个触发器,它在插入新记录时触发,并在从序列中插入后EF get primary key。为每个表创建序列。 在我的edmx文件中,每个ID列都有一个
StoreGeneratedPattern=“Identity”
属性集

我的代码是:

 using (var context = new Entities())
 {
    var title = new TITLE
    {
        TITLE_NUMBER = 4000001,
        IS_DRAFT = "N", 
        REGISTRY_DATE = DateTime.Now
    };

    var titleName = new TITLE_NAME
    {
        NAME = "title name"
    };
    title.TITLE_NAME.Add(titleName);
    context.Set<TITLE>().Add(title);
    context.SaveChanges();
 }
使用(var context=new Entities())
{
变量标题=新标题
{
标题编号=4000001,
是_DRAFT=“N”,
REGISTRY\u DATE=DateTime.Now
};
var titleName=新标题\名称
{
NAME=“title NAME”
};
标题.标题\名称.添加(标题名称);
context.Set().Add(title);
SaveChanges();
}
执行
context.SaveChanges()
时,会引发异常:

已成功提交对数据库的更改,但更新对象上下文时出错。ObjectContext可能处于不一致的状态。内部异常消息:AcceptChanges无法继续,因为对象的键值与
ObjectStateManager
中的另一个对象冲突。在调用AcceptChanges之前,请确保键值是唯一的

但更改被正确地保存在数据库中。并且我的Title对象具有正确的Title和
Title\u Name
Id。我能做什么?或者我做错了什么

Opps。我从edmx中删除了继承,错误就消失了

但所有项目都是在继承中构建的

行动计划。具有相同方案的MS SQL也给出了此例外。

从这里开始:
EF团队分类:这是因为您已使用TPC映射配置了标识。因为这两种类型映射到完全独立的表,所以会生成重复的ID,因为数据库不知道如何在这两个表之间生成唯一的值。解决这个问题的一种方法是修改表,让一个生成奇数,另一个生成偶数。 解决方法

我们为所有实体创建具有共享属性的接口,并从edmx文件中删除继承。

在部分文件TITLE.cs中

public partial class TITLE : IHistoricalEntity
{
}
因此,我们可以对项目中的所有实体使用通用版本

public partial class TITLE : IHistoricalEntity
{
}