Выберите определенные столбцы из базы данных с помощью EF Code First

У нас есть клиент, очень большая таблица с более чем 500 столбцами (я знаю, что кто-то так делает!)

Многие из этих столбцов на самом деле являются внешними ключами к другим таблицам .

У нас также есть требование быстро загрузить некоторые из связанных таблиц.

Есть ли способ в Linq to SQL или Dynamic Linq указать, какие столбцы следует извлекать из базы данных? Я ищу оператор linq, который на самом деле ИМЕЕТ такой эффект на сгенерированный оператор SQL :

SELECT Id, Name FROM Book

. Когда мы запускаем регулярный запрос, сгенерированный EF, SQL Server выдает ошибку, что вы достигли максимального количества столбцов, которые можно выбрать в запросе!!!

Любая помощь высоко ценится!


Да, это именно так, таблица имеет 500 столбцов и ссылается на себя, наш инструмент автоматически загружает отношения первого уровня, и это достигает ограничения SQL на количество столбцов, которые могут быть запрошены.

Я надеялся, что смогу настроить загрузку только ограниченных столбцов связанных сущностей, таких как идентификатор и имя (, которые используются в пользовательском интерфейсе для просмотра записи пользователю )

. Я предполагаю, что другой вариант - контролировать, какие столбцы FK должны быть загружены. Однако это по-прежнему остается проблемой для таблиц с двоичным столбцом или столбцом ntext, которые вы, возможно, не захотите загружать постоянно.

Есть ли способ подключить несколько моделей (Entities )к одной и той же таблице в Code First? Мы пытались сделать это, я думаю, что попытка с треском провалилась.

12
задан casperOne 17 July 2012 в 21:27
поделиться