Entity Framework с использованием хранилища данных SQL Server, моделирующего отношение один ко многим - PullRequest
0 голосов
/ 22 января 2019

Могу ли я получить некоторую помощь в диагностике следующего?

IQueryable<MyComponentsViewModel> vcvm = from v1 in pg.MyComponents 
                                         join item in Items on v1.Item equals item into vc
                                         select new MyComponentsViewModel 
                                                    {  Cost = item.Cost };

Появляется следующая ошибка:

Ошибка CS1941: Тип одного из выражений в предложении объединения:неверен.Ошибка вывода типа при вызове 'GroupJoin'.

Это состояние ошибки возникает, поскольку элемент не совпадает с типом v1.Item?

Ключи показаны ниже

ALTER TABLE [dbo].[MyComponents]  WITH CHECK ADD  CONSTRAINT 
[FK_MyComponents_Items] FOREIGN KEY([ItemId])
REFERENCES [dbo].[Items] ([Itemid])
GO

ALTER TABLE [dbo].[MyComponents] CHECK CONSTRAINT [FK_MyComponents_Items]

Ответы [ 2 ]

0 голосов
/ 22 января 2019

Мне удалось заставить его работать.

Между действием под названием Предметы была неоднозначность.Полностью указать пространство имен решено это.Кроме того, мне пришлось добавить утверждение "из подпункта в vc.DefaultIfEmpty"

Я все еще работаю над изучением полной семантики этого

IQueryable<MyComponentsViewModel> vcvm = 
    from v1 in pg.MyComponents 
    join item in pg.Items on v1.Item equals item into vc
    from subitem in vc.DefaultIfEmpty()
    select new MyComponentsViewModel {   Cost = subitem.Cost };
0 голосов
/ 22 января 2019

Полагаю, вам нужно внутреннее объединение, и пока вы выполняете равенство, вам нужно использовать соответствующие идентификаторы столбцов для фильтрации записей, как показано ниже

IQueryable<MyComponentsViewModel> vcvm = 
    from myComp in pg.MyComponents 
    join item in Items on myComp.ItemId equals item.Id
    select new MyComponentsViewModel {   Cost = item.Cost };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...