2010-06-29 135 views
1

我想創造這樣的包裝或mayby更好的詞是「擴展」中的EntityFramework模型類生成...擴展模型類ASP.MVC(繼承?)

我有模型用戶,口令,用戶名等..和用戶的關係許多到許多與其他一些物品...什麼...

我想創建這樣的事情:

class ExtendedUser : USER { 
public void AddObject(Object o) {} 
} 

但我不知道,這是個好主意...... 我不知道如何創建構造函數。我想要做這樣的事情。

User u = ...; 
ExtendedUser eu = u as ExtendedUser; 

概念,我想從數據庫獲取數據,並把它變成ExtendedUser實例,因爲這個對象有方法來處理這些數據...

如何做到這一點?

回答

7

我相信由實體框架生成的類是部分類,因此您可以在相同的名稱空間內創建具有相同名稱的另一個部分類,並且您應該會看到添加到用戶類上的任何額外方法,例如:

partial class User 
{ 
    //Generated code 
} 

partial class User 
{ 
    public void MyMethod(); 
} 

User u = new User(); 
u.MyMethod(); 
+0

這是非常有用的信息。謝謝。我不知道你能做到。 – Victor 2016-12-28 15:52:30

0

如果您只是想擴展方法,就足夠了。但是,如果您還想向模型添加元數據(如數據註釋等),則此方法無效。

實際上,您只能將方法添加到自動生成的類中。

我回答了有關向自動生成的實體類添加和保留數據註釋的問題,here