Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# UpdateException:由于使用实体框架和Oracle时对象的当前状态,操作无效_C#_Oracle_Entity Framework_Exception_Oracle11g - Fatal编程技术网

C# UpdateException:由于使用实体框架和Oracle时对象的当前状态,操作无效

C# UpdateException:由于使用实体框架和Oracle时对象的当前状态,操作无效,c#,oracle,entity-framework,exception,oracle11g,C#,Oracle,Entity Framework,Exception,Oracle11g,我试图为持久性添加一个新的实体对象,但是我得到一个who的内部异常,消息如下: 由于对象的当前状态,操作无效 正在创建的对象: var something = new SITE { EntityKey = new EntityKey("DataModelContainer.SITE", "SITE_ID", "ID"), SITE_COMMON_REFERENCE = "hello", SITE_ID = "

我试图为持久性添加一个新的实体对象,但是我得到一个who的内部异常,消息如下:

由于对象的当前状态,操作无效

正在创建的对象:

var something = new SITE
{
    EntityKey = new EntityKey("DataModelContainer.SITE", "SITE_ID", "ID"),
                    SITE_COMMON_REFERENCE = "hello",
                    SITE_ID = "hello"     
};
然后将其传递给:

public void ExportSiteData (SITE exportSiteData)
{
    _context.SITE.AddObject(exportSiteData);
    _context.SaveChanges(); //<-- Exception here
}
并被称为:

using (var repo = new BillRepository())
{
    repo.ExportSiteData(something);
}

请验证相关表的主键(以xml格式调出.edmx文件)是否在这两个部分中都存储了GeneratedPattern=“Identity”。存在一个已知错误,即EF通过设计器修改一个部分,但不修改另一个部分。请在这两个部分中查找:

<EntityType Name="TIMELINE">
          <Key>
            <PropertyRef Name="ID"/>
          </Key>

  <Property Name="ID" Type="decimal" Nullable="false" Precision="19" StoreGeneratedPattern="Identity" />



    • 在过去几天里,我也遇到了同样的问题,这也与主键有关

      在我的例子中,模型的源数据库没有设置主键(无论出于何种原因)

      从这些表生成模型时,.ssdl如下所示:

      <EntitySet Name="..." EntityType="Model.Store...." store:Type="Tables"     store:Schema="..." store:Name="...">
       <DefiningQuery>
       SELECT
       "..."."..." AS "...",
       ...
       </DefiningQuery>
      </EntitySet>
      
      
      挑选
      “…”作为“…”,
      ...
      
      “存储:名称”“定义查询”在表已具有主键时未生成


      删除这两个部分后,我以前生成的.ssdl文件工作正常,即使表中仍然没有主键。

      我在升级旧项目时遇到了这个错误

      确保项目与包文件中列出的.net framework版本匹配。例如,如果列出了net452,请确保您的项目设置为使用Net4.5.2。如果解决方案中有多个项目,请确保它们都设置为正确的.net framework版本


      另外,我注意到在向项目中添加新的数据模型时,会混淆要添加哪个模型文件。我相信这是由于在我的开发盒上安装了TFS(我有express,然后安装了最新版本)。为了解决这个问题,我暂时断开了项目与TFS的连接。)

      您是否查看了您发布的链接上的异常,以及导致问题的原因。。您是否正在关闭调用的方法中您可能不知道的任何地方的连接?@DJKRAZE-是的,我都读过它们,但是似乎没有任何帮助,我不相信我正在关闭连接,因为我在调用之前刚刚创建了_上下文:
      \u context=new DataModelContainer()<EntitySet Name="..." EntityType="Model.Store...." store:Type="Tables"     store:Schema="..." store:Name="...">
       <DefiningQuery>
       SELECT
       "..."."..." AS "...",
       ...
       </DefiningQuery>
      </EntitySet>