Поместите логику за сгенерированные поля LinqToSql - PullRequest
1 голос
/ 13 февраля 2009

В базе данных, которую я использую в нескольких проектах, есть поле, которое на самом деле должно быть логическим, но по причинам, которые никто не может объяснить мне поле, дублированное в двух таблицах, где один раз это символ ('Y' / ' N ') и один раз int (1/0). Когда я сгенерирую текстовый текст с помощью LinqToSql, поля вне курса получат эти типы данных.
Было бы неплохо, если бы мне не пришлось перетаскивать этот глупый выбор типа данных в остальную часть моего приложения. Есть ли способ дать сгенерированным классам немного логики, которые просто возвращают мне

return this.equals('Y');
and
return this==1;

Желательно, чтобы в моем частичном классе не было дополнительного поля.
Было бы решением дать сгенерированному полю совершенно другое имя, к которому можно получить доступ только через частичный класс, а затем сгенерировать дополнительное поле с исходным именем с моей собственной логикой в ​​частичном классе. Я не знаю, как изменить уровень доступности в моем сгенерированном классе, хотя ..

Есть предложения?

Ответы [ 2 ]

3 голосов
/ 13 февраля 2009

Щелкните правой кнопкой мыши и выберите «Свойства» свойства в конструкторе LINQ-To-Sql, что позволит вам изменить видимость. Затем вы можете предоставить реализацию с желаемой логикой в ​​вашем частичном классе.

0 голосов
/ 13 февраля 2009

Просто создайте свойство для перевода значения char в логическое значение, вы можете использовать его для получения и установки значения char на основе вашего логического ввода.

Это можно сделать в частичном классе.

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