2013-09-22 4 views
0

ОК, поэтому у меня есть таблица/сущность клиента. У меня также есть медицинская таблица/сущность. И поскольку у моего Клиента может быть несколько медицинских записей, я создал разрешающую таблицу/объект под названием ClentMedial, который состоит из 3 атрибутов, ID, ClientID и MedicalID.C# Entity Framework 5 много для многих данных просмотра

Я понял, как создать ClientMedical записи при указании идентификатора явно используя следующий код:

ClientMedical cm = new ClientMedical(); 
    var med = (from m in db.Medicals where m.Id == 1 select m).First(); 
    cm.Client = client; 
    cm.Medical = med; 
    client.ClientMedicals.Add(cm); 
    db.SaveChanges(); 

Однако я не знаю, как перебрать Клиент ClientMedical коллекции для отображения состояния здоровья (Медицинский объект имеет атрибут условия). Я новичок в Entity Framework. У меня есть клиентская форма, в которой отображается вся информация о конкретном клиенте, что я хочу сделать, чтобы показать/добавить/удалить медицинские условия для конкретного клиента.

Прошу прощения, если это немного расплывчато, я попытался объяснить это как можно лучше.

EDIT:

был в состоянии получить доступ к данным, как это:

IQueryable<Medical> med = 
       from p in db.ClientMedicals 
       where p.Client.Id == client.Id 
       select p.Medical; 

      foreach (Medical m in med) 
      { 
       MessageBox.Show(m.Condition); 
      } 

Если кто-то лучший способ пожалуйста сказать.

ответ

0

Вы хотите, чтобы все медицинские для конкретного клиента?

var client = db.Clients.Where(c=>c.ClientID == someID).Include("Medical").Single(); 

Теперь в клиенте, списке Медицина была заселена медикаментами для этого клиента.

+0

Это не сработало. Я получил следующую ошибку: «System.Linq.IQueryable » не содержит определения для «Include» и никакого метода расширения «Include», принимающего первый аргумент типа «System.Linq.IQueryable '(вам не хватает директивы using или ссылки на сборку?). Я думал, что EF полагает, что это упростит ха-ха. – SnakeByte

+0

с использованием System.Data.Entity; – Senaid

+0

У меня уже было это. – SnakeByte

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