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

StackOverflow https://stackoverflow.com/questions/302650

Вопрос

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

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

диаграмма таблицы

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

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

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

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

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

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

Это было полезно?

Решение

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

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

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

статья MSDN в MetaModel

Другие советы

Полезно использовать это также из модели 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)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top