Bru*_*oLM 5 c# entity-framework entity-framework-4
我有两个项目:
两者都定义Entities
.当我尝试执行时
using (var db = new News.Data.Entities("name=Entities"))
{
results1 = db.News.ToList();
}
using (var db = new Tag.Data.Entities("name=Entities"))
{
results2 = db.Tag.ToList();
}
Run Code Online (Sandbox Code Playgroud)
在控制台应用程序上我收到此错误:
指定的架构无效.错误:Model1.csdl(3,4):错误0019:EntityContainer名称必须是唯一的.已定义名为"实体"的EntityContainer.
是否可以使用
News.Data.Entities
Tags.Data.Entities
Run Code Online (Sandbox Code Playgroud)
代替
News.Data.NewsEntities
Tags.Data.TagsEntities
Run Code Online (Sandbox Code Playgroud)
?
连接字符串在应用程序级别配置,容器名称用作唯一标识符。要么将 containerNames 更改为唯一值,要么重新实现 的默认构造函数ObjectContext
以查找Setting
可以在程序集级别配置的 a 。
ObjectContext
编辑:在本例中,创建 的实例时News.Data.Entities
,上下文的基类通常是使用ContainerName
. 该参数提供了ObjectContext
建立其存储连接并执行所有映射业务所需的所有信息。
ObjectContext
基本上,类型和之间建立了关联ContainerName
。当实例化第二个 context Tags.Data.Entities
(不同类型)时,它将尝试将该类型与容器关联起来,这就是引发异常的原因,因为您不能将相同的 ContainerName 关联两次。
要解决此问题,如果可以的话,最好的办法是使用不同的容器名称重新创建 EDMX。如果无法删除,您可以在设计器中修改 ContainerName 参数,然后在记事本中打开 edmx,查找“EntitiesModelStoreContainer”,然后将“Entities”部分更改为新的 ContainerName。
希望能帮助到你...
归档时间: |
|
查看次数: |
12258 次 |
最近记录: |