0

替代文字 http://img16.imageshack.us/img16/8085/datacontext.jpg

以上是我的数据上下文的 LINQ to SQL 设计器视图。

下面是设计器生成的相关代码:

抽象 ActivityBase 类的访问器:

        public System.Data.Linq.Table<ActivityBase> ActivityBases
        {
            get
            {
                return this.GetTable<ActivityBase>();
            }
        }

ActivityBase 类和子类列表:

[Table(Name="dbo.Activities")]
[InheritanceMapping(Code="1", Type=typeof(ActivityBase), IsDefault=true)]
[InheritanceMapping(Code="2", Type=typeof(Project))]
[InheritanceMapping(Code="3", Type=typeof(ProjectActivity))]
[InheritanceMapping(Code="5", Type=typeof(Task))]
[InheritanceMapping(Code="4", Type=typeof(Activity))]
public abstract partial class ActivityBase : INotifyPropertyChanging, INotifyPropertyChanged
{

有没有一种方法可以为子类生成访问器方法,如上面的继承映射(项目、任务等)所示,而无需手动执行?我手动添加了它们,但是设计器中的更改会覆盖任何手动更改。

我做错了吗?我不应该为子类制作访问器吗?从 ActivityBase 过滤对我来说似乎更糟。

感谢您对此的任何帮助。

4

2 回答 2

2

请注意,LINQ to SQL 创建部分类。如果要修改自动生成的类,可以通过声明具有相同名称的部分类并在其中添加方法来实现。这样,当您在设计器中进行更改时,它们就不会被覆盖。

于 2010-03-29T23:41:07.470 回答
0

我发现这个问题回答了我想知道的问题:

MyDataContext.dbml 下的 .cs 文件是做什么用的?

因为数据上下文也是一个部分类,所以我可以使用该文件。

于 2010-03-30T22:01:01.837 回答