2013-04-23 31 views
0

我叫下面的類:如何將一個子類轉換爲父類以保存在NHibernate中?

public class Parent 
{ 
    public string Field1; 
    public string Field2; 
} 

public class Child : Parent 
{ 
    public string Field3; 
} 

我現在有子對象的名單,我需要再通入正在尋找一個父類的功能。

將Child類轉換回Parent類的最佳方法是什麼(我不在意field3在這一點上)?

我使用NHibernate和當我通過在子類中,並試圖挽救它,我得到這個錯誤:

No persister for: ChildClass

即使「父」類有一個留存。

+1

的'Child' *實例也是* Parent'的'實例。您應該能夠直接傳遞它們,而無需任何修改。如果你不能,請顯示編譯器錯誤和導致它的代碼。 – cdhowie 2013-04-23 15:20:35

+1

@cdhowie - 我需要做一個顯式的轉換,因爲我使用的是nhibernate,它要求對象是父類。 – leora 2013-04-23 15:22:45

+0

爲您添加了明確的轉換示例和MSDN鏈接。 – Liam 2013-04-23 15:33:39

回答

9

子類的實例是父類的實例。
你不需要做任何特別的事情。

+4

包含一個關於協變性的註釋會很有用,因爲OP正在討論一系列的孩子,而不僅僅是一個孩子。 – allonhadaya 2013-04-23 15:24:05

+0

但在nhibernate中,您需要指定要保存的類型 – leora 2013-08-21 01:28:58

-1

至於對方說孩子也是父類

private void yourFonction(parentClass parent) 
{ 
    //you code 
} 

的實例,那麼你可以這樣調用

childClass cs = new childClass(); 
yourFonction(cs); 
+0

@downvoter謹慎地說出原因? – 2013-08-21 16:27:30