Добавление атрибутов к свойствам в DBML Linq2Sql - PullRequest
5 голосов
/ 17 февраля 2011

Мы работаем с базой данных, содержащей метаданные всех таблиц базы данных и полей, используемых в наших приложениях.Из этих метаданных мы генерируем код, который содержит частичные классы, расширяющие наши сущности Linq2Sql.

У нас была идея добавить «устаревший» флаг в наши метаданные, который, в свою очередь, должен добавить атрибут Obsolete к помеченномусвойства в объекте Linq.(генерирование предупреждений в нашем коде с использованием старых полей)

Возможно ли расширение этого типа в частичном классе?Чтобы просто добавить атрибут к свойству в частичном файле класса?Это звучит очень похоже на «частичное свойство», которого, как я думал, не существует в .NET.

Ответы [ 2 ]

1 голос
/ 04 сентября 2011

Да, проверьте атрибут MetadataType .

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

0 голосов
/ 14 марта 2011

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

Я использую это сам, чтобы добавить атрибут CompilerGenerated к классам, которые генерирует Linq2SQL. Например:

[System.Runtime.CompilerServices.CompilerGenerated()]
public partial class MyDataContext : System.Data.Linq.DataContext {}

[System.Runtime.CompilerServices.CompilerGenerated()]
public partial class tblInsurance { }
...