Linq для SQL с Sproc и переменными столбцами? - PullRequest
2 голосов
/ 26 мая 2011

У меня есть sproc, который возвращает как минимум 4 столбца, а затем n столбцов после этого (это результат Pivot).

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

Поскольку Linqtosql - мой DAL, я хочу придерживаться его, если это возможно - я не хочу возвращаться к нетипизированным наборам данных, не так ли?

Как я могу заставить LinqToSql вернуть результат sproc с переменным количеством свойств / столбцов?

Спасибо.

1 Ответ

2 голосов
/ 26 мая 2011

LINQ-to-SQL должен отображать объекты вашей базы данных в конкретные типы.Короче говоря, вы не можете сделать это.

Есть обходные пути.Я ожидаю, что лучшим результатом будет сопоставление ваших n столбцов с коллекцией внутри каждого объекта данных.

Если вы можете изменить схему базы данных, чтобы вместо нее использовать шаблон View родитель-потомок, а не один динамический sproc, LINQ-to-SQL сможет отобразить это.Например, у вас будут первые 4 столбца в родительском представлении, а каждый последующий столбец в существующем процессе станет строкой в ​​дочернем представлении, которое должно ссылаться на родительское представление.

Другая альтернатива - более простая, но более грязная - будет возвращать один столбец, содержащий ваши текущие n столбцов в формате CSV (или другой разделитель).Затем вы анализируете это единственное значение в коллекцию.Уродливый, но простой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...