Генератор кода LINQ-to-SQL поддерживает это напрямую.
Базовый класс для контекста данных может быть установлен в конструкторе как свойство Base Class
. В качестве альтернативы, отредактируйте dbml напрямую: щелкните правой кнопкой мыши, «Edit With ...», «XML Editor»
Чтобы изменить базовый класс для сущностей, установите тип:
<Database EntityBase="Some.NameSpace.Foo" ... >
Чтобы изменить базовый класс для контекста данных, установите тип:
<Database BaseType="Some.NameSpace.Bar" ... >
В обоих случаях используйте полностью определенный тип в атрибуте. Et voila.
Обратите внимание, что, поскольку он очень буквальный, вы также можете использовать этот подход, чтобы заставить ваши сущности реализовывать интерфейс - например, когда мои классы имеют свойства, такие как LastUpdated
и UpdatedBy
, у меня может быть интерфейс IAuditable
это определяет это. Затем я могу поместить код в свой контекст данных SubmitChanges
(переопределить), который вызывает GetChangeSet()
и устанавливает эти значения для всех обновляемых объектов IAuditable
; очень мило.