我在一个解决方案中有三个C#ASP.NET MVC2项目。为简单起见,名称已被更改。ADO.Net:在解决方案中的多个项目之间共享实体(.edmx)
解决方案是MY_COMPANY_SITES。
它有三个项目:CUSTOMER_SITE,INTRANET_SITE,CENTRAL_REPOSITORY。
... CUSTOMER_SITE和INTRANET_SITE项目都有自己的ADO.Net实体模型,通过EDMX生成并连接到它们自己的数据库。 CENTRAL_REPOSITORY项目包含第三个ADO.Net实体模型,与其自己的数据库链接。
这是需要我的情况,这三个数据库是分开的;在这里解释需要很长的时间。
我需要做的是:给CUSTOMER_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内修改的实体模型,它只是被其他应用程序,因此我不挂我不需要在三者之间复制所有的变化。
我认为必须有一个“正确”的方式来做到这一点。可以非常理解如何使用一些帮助。
谢谢!
UPDATE:
Blindy(下同)指示我发现答案是在Solution Explorer中的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.
...所以有一些问题,试图从项目中使用的实体,我我不明白是什么。有什么想法吗?
有什么问题? – 2012-03-06 19:28:56
如果您已经有了另外两个引用的第三个项目,那么您可以完全按照您的写法来完成。这里有什么问题? – Blindy 2012-03-06 19:36:00