自动将LinqToSql基类添加到实体的方法?

Joh*_*ell 2 c# linq-to-sql

是否有自动方法将基类添加到Linq2Sql实体?

我知道我可以定义一个部分并实现它,但必须有一个自动化的方式,对吧?

Mar*_*ell 7

LINQ-to-SQL代码生成器直接支持它.

数据上下文的基类可以在设计器中作为Base Class属性进行设置.或者,直接编辑dbml:右键单击,"Edit With ...","XML Editor"

要更改实体的基类,请设置类型:

<Database EntityBase="Some.NameSpace.Foo" ... > 
Run Code Online (Sandbox Code Playgroud)

要更改数据上下文的基类,请设置类型:

<Database BaseType="Some.NameSpace.Bar" ... >
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,请在属性中使用完全限定类型.瞧瞧.

请注意,因为它是非常字面,你也可以用这种方法来使你的实体实现的接口-例如,当我的班有这样的属性LastUpdatedUpdatedBy,我可能有一个IAuditable定义这些接口.然后我可以将代码放在我的数据上下文SubmitChanges(覆盖)中,该代码调用GetChangeSet()并为所有IAuditable正在更新的实体设置这些值; 很甜.