0
好的,首先我希望這是有道理的。Fluent Auto Mappings with abstract base also also part of model
我想基於以下想法爲我的應用使用流暢的自動映射。
public abstract class Container
{
public virtual int Id {get; set};
public virtual string Name {get; set;}
}
public class FirstSubClass : Container
{
//properties and behaviour here
}
public class SecondSubClass : Container
{
//properties of SecondSubclass Here
}
public class ProcessStep
{
public virtual Container Source {get; set}
public virtual Container Destination {get; set;}
}
然而,當我嘗試生成架構或測試我的映射(使用SQLite或其他方式)它的失敗指出:
NHibernate.MappingException:從表中ProcessStep是指未映射類的關聯: ...... Entities.Container
如果我更改Container類並使其無法抽象,它就可以工作。
我可以根據基本類型公開一個實體上的一個屬性,而基本保持抽象嗎?
任何幫助將不勝感激。
感謝@Sly。自從提出這個問題後,我實際上已經開始提問,並想知道我是否可以從抽象基礎改爲接口。那麼我在哪裏引用Container,用IContainer替換?這可能是因爲ProcessStep無法維護任何給定的關鍵約束。然後,我可以生成模式而不生成約束,並允許空值? – 2011-04-08 15:52:33