我在一个解决方案中有三个C#ASP.NET MVC2项目。为简单起见,名称已被更改。
解决方案是MY_COMPANY_SITES。
它有三个项目:CUSTOMER_SITE,INTRANET_SITE,CENTRAL_REPOSITORY。
... CUSTOMER_SITE和INTRANET_SITE项目都有自己的ADO.Net实体模型,通过EDMX生成,并连接到自己的数据库。 CENTRAL_REPOSITORY项目包含第三个ADO.Net实体模型,与其自己的数据库相链接。
我的情况需要这三个数据库是分开的;这里需要花费很长时间来解释。
我需要做的事情:除了他们自己的实体之外,还要给CORTOMER_SITE和INTRANET_SITE访问CENTRAL_REPOSITORY ADO.Net实体。
即,以下代码应该有效:
CUSTOMER_Entities custDb = new CUSTOMER_Entities();
CENTRAL_Entities ctrDb = new CENTRAL_Entities();
StoreLocation firstLoc = ctrDB.StoreLocations.First();
List<Order> orders = (from n in custDb.Orders
where n.LocationID == firstLoc.LocationID
select n).ToList();
...理想情况下,如果我在CENTRAL_REPOSITORY中修改实体模型,它也只是更喜欢它,它只是由其他应用程序链接,所以我不必复制所有三个中的所有更改。
我认为必须采用“正确”的方式来做到这一点。可以使用一些帮助来理解如何。
谢谢!
更新
Blindy(下面)指示我找到答案只是右键单击解决方案资源管理器中CUSTOMER_SITE中的“引用”,然后单击“添加引用...”,然后选择CENTRAL_REPOSITORY项目,单击确定。瞧,一切都好起作用。
但是,它实际上似乎并不合适。具体来说,当我尝试从CUSTOMER_SITE或INTRANET_SITE中访问CENTRAL_REPOSITORY的数据实体时,我收到此错误:
The specified named connection is either not found in the configuration, not intended to be used with the EntityClient provider, or not valid.
...所以尝试使用该项目中的实体存在一些问题,我不明白是什么。有什么想法吗?
答案 0 :(得分:0)
要回答您的问题,您需要在其他两个站点的配置中使用相应的连接字符串,以使CENTRAL_REPOSITORY能够使用它进行连接。查看原始站点配置并将该连接复制到其他两个站点。
答案 1 :(得分:0)
您需要在app.config文件中为每个使用linq to entities模型的项目创建连接字符串,以解决此错误。