2010-06-18 75 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