Linq to Entity - могу ли я добраться до другой таблицы в модели, когда на странице шаблона списка MVC - PullRequest
0 голосов
/ 19 ноября 2008

в шаблонном решении вне проекта (веб-приложение с динамическими данными) у меня есть созданная модель, и все хорошо. - Получить список таблиц, выбрать редактирование и т. Д.

Но в моей базе данных есть таблицы ссылок, которые содержат только забытые ключи - поэтому шаблон списка просто отображает значение fk

diagram of the table

Можно ли объединить список строк в первичной таблице с проверкой другой таблицы на основе fk?

Больше похоже на объединение в SQL? но используя Linq2Entity и MetaModel?

Ниже приведен список List.aspx.cs - кажется, что он привязывает стандартную сетку к источнику entitydatasource, но это относится к текущей таблице согласно маршруту в MVC.

Но, как вы видите, мне нужно пойти и запросить таблицу Person, Role и Link через модель, чтобы получить другие поля, чтобы это было полезно. vstudio

PS хочу попытаться сохранить это в LINQ2Entity, если это возможно, - пытаясь уродиться

естественная вещь, которую я хочу сделать, это начать раскручивать новые sql-запросы и получать значения. Но это не в этой идиоме.

Ответы [ 2 ]

1 голос
/ 20 ноября 2008

вы можете ссылаться на метамодель через dataContext

MetaModel refMetaModel = MetaModel.GetModel(typeof(yourdataContextName));
MetaTable refMetaModel;
refMetaModel =  refMetaModel.GetTable("yourTableName");

PS посмотрел ваш код, и это работает в вашем sceanrio. Вы можете получить таблицы из модели, а затем проверить данные, возвращенные для каждой таблицы в модели

Статья MSDN на MetaModel

0 голосов
/ 20 ноября 2008

Полезно использовать это также из модели Linq to Entities -

Используя dataContext - вы можете получить наиболее полезные данные.

metaModel позволяет получить доступ к dataModel, которая предоставляет вам базовую информацию о типе ddl

//use the datacontext to get the underlying data
      using (brrdbEntities brr = new brr_dbEntities())
      {
          ObjectQuery<person> people = brr.person;
          IQueryable<string> names = from p in people select p.person_name;
          foreach (var name    in names)
...