dotNet CORE与现有业务层的实体框架错误

时间:2017-09-06 17:00:44

标签: entity-framework .net-core

我有一个使用EntityFramework 6.0的dotNet 4.6.2应用程序,我刚刚添加了一个针对4.6.2的dotNet Core控制台应用程序,如下所示:

<PropertyGroup>
  <OutputType>Exe</OutputType>
  <TargetFramework>net462</TargetFramework>
</PropertyGroup>

我需要访问我们现有的业务层(和entityFramework层),它需要配置文件中的connectString。我无法获取现有代码来读取控制台应用程序的appsetting.json(无需修改),因此我添加了一个app.config并粘贴在现有web.config中的connectStrings中。

当我访问数据库时,出现以下错误:

  

实体类型'APOrganization'和'Organization'不能   共享表'组织',因为它们不是同一类型   层次结构或没有有效的一对一外键关系   在它们之间匹配主键。

这是我的app.settings:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <connectionStrings>
      <add name="MyApp" connectionString="Server=(localdb)\msSqlLocalDB; Integrated Security=True; Database=MyDatabase; MultipleActiveResultSets=True" providerName="System.Data.SqlClient"/>
    </connectionStrings>
</configuration>

我以后无法更改业务和现有的实体框架代码。

以下是更多信息: APOrganization实体绑定到AP模式中的表。该类具有此数据注释:

<Schema.Table("AP.Organization")>

组织实体绑定到默认(dbo)架构中的Organization表。

出于某种原因,EF 认为它在从Core应用程序启动时共享同一个表,但是在4.6.2应用程序启动时则没有。

1 个答案:

答案 0 :(得分:1)

这是EF 6.0中的已知问题。它由6.1.3修正。 https://entityframework.codeplex.com/workitem/1641

我的dotNet核心应用程序安装了6.0,但原始应用程序安装了6.1.3。有趣的是,调用应用程序版本专用于它,而不是它所在的模块。

我升级了它的工作。