LINQ to SQL - Частичный класс для выборочного изменения формы - PullRequest
0 голосов
/ 06 февраля 2009

Что у меня есть:

Автоматически сгенерированный класс LINQ to SQL, соответствующий форме его таблицы SQL.

TABLEA
========
column1
column2

Что я хочу сделать:

Расширение класса TABLEA для включения нового свойства, связанный столбец которого будет присутствовать только при вызове определенной хранимой процедуры. Тип возвращаемого значения хранимой процедуры будет TABLEA.

TABLEA
========
column1
column2
newcolumn3 (always part of the class structure, not always populated)   

Что я сделал до сих пор:

Создан частичный класс со свойством и атрибутом столбца, который работает при вызове хранимой процедуры. Когда выполняется прямой вызов таблицы, я получаю недопустимое исключение для столбца.

Мой вопрос:

Как расширить класс данных LINQ to SQL, чтобы заполнить свойство из столбца, который может отсутствовать?

1 Ответ

2 голосов
/ 06 февраля 2009

Я не думаю, что это возможно. Смысл LINQ to SQL заключается в том, чтобы обеспечить прямое отображение между схемой возвращаемого набора и объектом в .NET. Две разные схемы возвращаемых множеств, два разных объекта. Вы не можете по-настоящему представить хранимую процедуру как возвращающую один и тот же объект, если подпись возврата отличается. Это больше похоже на «ObjectWithAdditionalInfo».

Когда вы начинаете делать эти более сложные, неоднозначные сопоставления, вам нужен настоящий инструмент ORM, такой как Microsoft Entities или Hibernate.

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