Ассоциация LINQ to SQL — «Свойства не имеют совпадающих типов»
-
09-06-2019 - |
Вопрос
Я пытаюсь связать два поля данной таблицы с одним и тем же полем в другой таблице.Я делал это раньше, поэтому не могу понять, что не так на этот раз.
В любом случае:
Table1
- Id (Primary)
- FK-Table2a (Nullable, foreign key relationship in DB to Table2.Id)
- FK-Table2b (Nullable, foreign key relationship in DB to Table2.Id)
Table2
- Id (Primary)
Ассоциация работает для FK-Table2a, но не для FK-Table2b.Фактически, когда я загружаюсь в LINQ to SQL, он показывает Table2.Id как связанный с Table1.Id.Если я попытаюсь изменить это или добавить новую ассоциацию для FK-Table2b к Table2.Id, он скажет:«Свойства не имеют совпадающих типов».
Это также работает и в других проектах — может быть, мне просто скопировать .dbml?
Есть идеи?
Решение 2
Понятия не имею о причине, но я только что восстановил свой .dbml с нуля, и все исправилось.Ох, уж эта функция "обновить"...
Другие советы
Я вижу эту проблему, когда пытаюсь создать отношения «один к одному», где одна сторона отношения может быть обнуленной (на самом деле, «один к нулю/единица»).LINQ-to-SQL, похоже, не поддерживает это, поэтому, похоже, мы вынуждены использовать множественное число и коллекцию, которая будет содержать ноль или один элемент.Раздражающий.
У меня такая же проблема.Эта ошибка появлялась, когда я пытался связать поля разных типов или когда я пытался перетащить таблицу в пространство .dbml, но .dbml уже содержал связанные таблицы с разными типами связанных полей.