2011-02-02 4 views
2

У меня есть два набора объектов с объектами с одинаковыми именами со свойствами с тем же именем. Следовательно:Как вы разрешаете двусмысленность между типами в Linq?

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

tvanfosson как вы отформатировали мой код? Обычно StackOverflow делает это для меня, но это не на этот раз. –

+0

И ошибка .... –

+0

Какая ошибка? Изменяется ли ошибка, если вы выбираете только одно свойство клиента (скажем, Client_ID)? – tvanfosson

ответ

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 

Я был бы удивлен, хотя, если это повлияло на вашу проблему, так как мне кажется, что он испытывает трудности в определении, какие поля используются в качестве ключей присоединиться.

+0

Да, это не изменило ошибку. –

+0

Я думаю, что нет способов иметь таблицы с одинаковыми именами и свойствами. –

0

Измените пространства имен на объектах, которые будут отличаться.

Смежные вопросы