2010-06-18 94 views
1

是否可以重写在部分类上设置的属性?覆盖部分类中的属性(DBML)

所以我有一个自动生成的部分类这样的:

[Table(Name="dbo.Users")] 
public partial class MbsUser : INotifyPropertyChanging, INotifyPropertyChanged 
{ 

这是在我的DBML生成。问题是,我不希望我的班级使用这张桌子。我创建了一个名为“dbo.ActiveUsers”的视图,并希望将其用于替代(禁用停用的用户)。

我试过用相同的属性创建另一个部分类,如下所示:

[Table(Name = "dbo.MbsUsersActive")] 
public partial class MbsUser : IEquatable<MbsUser> 
{ 

但我得到的错误:

Duplicate 'Table' attribute 

回答

1

你得到这个错误,因为一个属性可以控制是否存在是[AttributeUsage]声明中该属性的一个或多个实例,并且仅声明一个。不,这不会很不幸...

为什么不改变设计师指向新实体的映射?不知道这是否会起作用,但它值得一试。

+0

是的,这就是我现在所做的。 (非常感谢您的快速回复)。 如果我在设计器中对其进行更改,它会起作用,但如果再次生成DBML,则会丢失该更改,并获取所有用户,而不仅仅是活动用户。 任何想法,我可以使它坚持下去?再次感谢! – 2010-06-18 02:02:48

+0

你的意思是它没有保存你的修改,或者你是否在说如何处理,如果你需要删除模型并重新创建它?我没有与前者有关的问题,而后者一直是一个问题;尽量不要删除整个模型,而只是更新需要的表格(可以使用属性窗口下拉菜单轻松找到表格)。如果您需要修改该表,请手动进行更改(添加列,添加映射详细信息)。 – 2010-06-18 12:29:51

+0

后者。如果未来由其他开发人员重新创建DBML,则该视图将无法使用,并且停用的用户会突然变为活动状态。 再次感谢!感谢帮助! – 2010-06-24 01:15:21