【问题标题】:Two references with Entity Framework models conflict实体框架模型的两个引用冲突
【发布时间】:2014-06-09 11:35:09
【问题描述】:

我正在尝试实现一个实用程序,该实用程序引用了两个现有的旧式控制台应用程序。它们都使用实体框架并定义了特定表的模型,例如Table1

这两个实用程序都可以作为独立应用程序完美运行。但是,当两者都包含在另一个项目中时,一个运行正常而另一个在尝试保存上下文中的更改时会引发错误:

A first chance exception of type 'System.Data.MetadataException' occurred in System.Data.Entity.dll

Additional information: Schema specified is not valid. Errors: 

Table1DataModel.ssdl(3,4) : error 0019:
The EntityContainer name must be unique.
An EntityContainer with the name 'Table1ModelStoreContainer' is already defined.

在两个项目的.edmx 文件中实际上都有一个Table1ModelStoreContainer

有没有办法让它们在不修改现有工具源代码的情况下协同工作?

【问题讨论】:

    标签: c# .net entity-framework entity-framework-6 edmx


    【解决方案1】:

    这似乎是引用的问题。检查两个项目中对实体框架的引用。还要查找配置文件(app.config),是否有对 EF 的正确引用。

    【讨论】:

    • 当我独立调用它们时,这两个实用程序都可以工作。它只会在我的新实用程序中崩溃,因为它们都具有以相同名称引用的相同数据库。现有应用程序无法更改,因此我正在寻找将它们粘合在一起的应用程序方面的解决方案。
    • @Impworks 您是否尝试更改实体容器的名称?在您描述和错误 0019 的情况下,您可以猜测您的实体容器的名称是相同的。打开模型浏览器,有节点“EntityContainer: YourName”。如果两个模型相同,请更改其中一个并尝试启动您的应用程序。 :)
    • 这就是重点。名称 are 相同,因此出现错误,但它们是在现有应用程序中定义的,我无法以任何方式修改。我只有两个 .exe 文件,我将它们添加为项目引用,然后创建一个在每个文件中定义的主类的实例。
    • 好的,我会和你一起等待答案。看起来并不简单。考虑赏金。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-28
    相关资源
    最近更新 更多