Могу ли я улучшить производительность только для чтения, используя View на моей базе данных и EF? - PullRequest
0 голосов
/ 02 августа 2011

Я использую SQL 2008 Linq и Entity Framework 4.

В моей базе данных у меня есть таблица с именем CmsContents. Эта таблица имеет много полей, таких как Title, CategoryId и некоторые довольно тяжелые, например HtmlCode.

Во многих частях моего внешнего интерфейса мне нужно отображать только некое поле моей таблицы CmsContents, например, только Title и CategoryId в порядке убывания.

Вопрос: Могу ли я улучшить производительность только для чтения, используя частичное представление для моей таблицы CmsContents (за исключением поля: HtmlCode)? Поэтому я хотел бы отобразить это представление на мою модель в EF и выполнить запрос с помощью Linq, чтобы получить требуемый результат во внешнем интерфейсе.

Моя цель - повысить производительность и избежать работы с AnonymousType в моих запросах Linq to Entity.

Дайте мне знать, что вы думаете.

Спасибо за вашу помощь в этом.

1 Ответ

2 голосов
/ 02 августа 2011

Вы можете выбрать только те поля, которые вам нужны, чтобы вам не нужно было загружать ненужные данные. Это не должно быть анонимно. Пример:

var result = from c in dbContext.CmsContents select new CmsContent
{Title = c.Title, CategoryId = c.CategoryId}

Edit: пожалуйста, попробуйте это в вашем коде, это должно работать, если ваш .CmsContents имеет IEnumerables, что, я думаю, так и есть.

    var contents = context.CmsGroupsTypes
.Single(g => g.GroupTypeId == 1)
.CmsContents
.Select(cms=>new CmsContent{Title = cms.Title, CategoryId = cms.CategoryId})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...