C # Entity Framework CS1941

Удаляет приложение (tomcat6). Файлы conf сохраняются. Это как-то ломается. Я не уверен, как это делается.

0
задан Tekin Güllü 18 January 2019 в 10:39
поделиться

3 ответа

Эта ошибка вызвана тем, что свойства Id типов Sense и Result несовместимы. Они не должны быть одинаковыми. Например, хорошо (с точки зрения компилятора), чтобы один был int, а другой - long. Однако, например, string и int или Guid или int будут несовместимы. Решение состоит в том, чтобы сделать оба типа совместимыми, если не одинаковыми. Я понимаю, что вы, возможно, не сможете этого сделать, поскольку ваша модель сущности может быть построена из существующей базы данных, и вы можете не иметь полномочий или не захотеть изменять базовый тип столбцов.

Если вы хотите решить проблему компиляции в самом коде, то вам придется выполнить явное приведение типов:

var vals = (from o in db.Words 
            join r in db.Results 
            on o.Id equals r.root   
            join s in db.Senses on r.Id equals Convert.ToString(s.Id)
            where r.val== SomeVal
            select  o ).Take(10);

Это предполагает, что свойство Id класса Result является строкой, а Id класс Sense - это некоторый числовой тип.

0
ответ дан tanveery 18 January 2019 в 10:39
поделиться

r.Id и s.Id имеют разные типы. Проверь их. Может быть, они int и long или что-то еще.

От @OzanTopal:

Для получения дополнительной информации проверьте эту ссылку: https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/cs1941

0
ответ дан Backs 18 January 2019 в 10:39
поделиться

Вы объединяете 3 таблицы, но результат просто:

select o?

Какова цель вашего объединения?

Проверьте ответ выше или проверьте Также это, если это разные типы:

on o.Id equals r.root
on r.Id equals s.Id 
r.val== SomeVal
0
ответ дан Vijunav Vastivch 18 January 2019 в 10:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: