Проблема с Entity Framework и таблицей ссылок

У меня есть база данных, которая состоит из следующего:

** Таблица 1 **

  • Id (PK)
  • Поле1

** Таблица 2 **

  • Id (PK)
  • Поле2

** Таблица ссылок **

  • Table1Id (ФК)
  • Table2Id (ФК)

Проблема в том, что я не могу получить доступ к таблице 2 из таблицы 1, хотя в базе данных существует связь.

Например, должно быть возможно следующее:

var Results = from c in DataContext.Table1
              where c.Table2.Field2 == "Test"
              select c;

Однако "c.Table2.Field2" по какой-то причине недоступен - все, что я получаю для "c.Table2". выглядит следующим образом (среди стандартных any‹>, где ‹> и др.):

  • Имя отношения
  • ОтношенияНабор
  • SourceRoleName
  • Таргетроленаме

Так что где-то явно что-то не так, но я не могу понять что!

Обе таблицы существуют в Entity Schema и имеют допустимую связь между собой.


person Moo    schedule 10.02.2010    source источник
comment
Просто чтобы добавить некоторую информацию о Entity Framework и таблицах ссылок - таблица ссылок должна иметь составной первичный ключ обеих сторон отношения, иначе EF помечает ее как доступную только для чтения и не будет создавать никаких отношений через таблицу.   -  person Moo    schedule 17.02.2010


Ответы (1)


Причина, по которой c.Table2.Field2 недоступна, заключается в том, что c.Table2 не имеет свойства с именем Field2. c.Table2 – это список объектов, обладающих этим свойством, а не экземпляр этого объекта. Непонятно, каково ваше намерение, но я думаю, что вы хотите:

var Results = from c in DataContext.Table1
              where c.Table2.Any(t2 => t2.Field2 == "Test")
              select c;
person Craig Stuntz    schedule 10.02.2010