我有两个实体集,其中包含具有相同名称的同名实体。因此:
FormsEntities formEntities2011 = new FormsEntities2011();
FormsEntities formEntities2010 = new FormsEntities2010();
我对每个问题都有疑问:
// -- Get a list of Clients from the 2010 Database for this agent
var clients2010Query = from c in formsEntities2010.Clients
join ac in formsEntities2010.Agent_Client on c.Client_ID equals ac.Client_ID
where ac.Agent_ID == a.Agent_ID
orderby c.Client_ID
select c;
但是我在关于Clients
之间的歧义的连接语句中收到错误。我相信这是因为formEntities2011
和formEntities2010
都有一个Client
实体。
通常我会添加命名空间来解决歧义,但我不知道如何在Linq语句中这样做?
在c.Client_ID和ac.Client_ID上错误是“成员定义了多次”
答案 0 :(得分:0)
如果您想明确指定类型,请尝试使用扩展方法和Cast
。
var c2010 = formsEntities2010.Clients
.Join( formsEntities1010.Agent_Client
.Where( ac => ac.Agent_ID == a.Agent_ID ),
c => c.Client_ID,
ac => ac.Client_ID,
(c,ac) => c )
.Cast<Forms2010.Client>(); // or whatever namespace you choose
但是,如果这会影响您的问题,我会感到惊讶,因为在我看来,它很难确定哪些字段用作连接键。
答案 1 :(得分:0)
将实体上的名称空间更改为不同。