- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有两个项目:
两者都定义了实体
。当我尝试执行时
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();
}
在控制台应用程序上我得到这个错误:
Schema specified is not valid. Errors: Model1.csdl(3,4) : error 0019: The EntityContainer name must be unique. An EntityContainer with the name 'Entities' is already defined.
是否可以使用
News.Data.Entities
Tags.Data.Entities
代替
News.Data.NewsEntities
Tags.Data.TagsEntities
?
最佳答案
<罢工>连接字符串在应用程序级别配置,容器名称用作唯一标识符。要么将 containerNames 更改为唯一值,要么重新实现 ObjectContext
的默认构造函数也许查找 Setting
,可以在装配级别配置。
编辑:创建 ObjectContext
的实例时, News.Data.Entities
在此示例中,上下文的基类通常使用 ContainerName
构造.此参数给出 ObjectContext
所有必要的信息来建立它的商店连接,并完成它的所有映射业务。
基本上,ObjectContext
之间建立了关联类型和 ContainerName
.在实例化您的第二个上下文时 Tags.Data.Entities
,这是一种不同的类型,它将尝试将该类型与容器相关联,这就是抛出异常的原因,因为您不能将同一个 ContainerName 关联两次。
要解决此问题,如果可以的话,最好的办法是使用不同的容器名称重新创建 EDMX。如果不能删除,您可以在设计器中修改 ContainerName 参数,然后在记事本中打开 edmx,查找“EntitiesModelStoreContainer”,并将“Entities”部分更改为您的新 ContainerName。
希望对你有帮助
关于c# - EntityContainer 名称在不同的程序集中必须是唯一的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4898794/
一些背景知识: 我有一个具有以下结构的 DLL 项目: Rivworks.Model (project) \Negotiation (folder) Model.edmx (mod
我有两个项目: 新闻.数据 标签.数据 两者都定义了实体。当我尝试执行时 using (var db = new News.Data.Entities("name=Entities")) {
我正在使用 ASP.NET MVC WebApi 作为 OData 服务,我想使用 Jaydata 查询这个 OData 服务。 Jaydata 有一个命令行实用程序 (JaySvcUtil.exe)
我在导入存储过程然后创建复杂类型并将函数命名为导入“sproc_Forums_GetForumGroupByID”后出现此错误,一旦选择了 GridView,此过程就会从 ObjectDataSour
尝试编译 Web 应用程序时出现以下错误: Error 11 Error 2002: The EntityContainer 'SomeEntitieContainerName' for the co
我们有一个由两个项目组成的解决方案 - 一个控制台应用程序项目和一个 Web 应用程序项目。其中每个都有相同的架构,但名称不同的 .edmx 文件,用于访问同一数据库。 控制台应用程序作为计划任务在托
我正在尝试将 Oracle 数据库集成到 ASP.NET 应用程序中,但我不断收到此错误: Error 2002: The EntityContainer 'OracleDBTargetContain
我是一名优秀的程序员,十分优秀!