我有我不想在DB被映射作爲一個實體基礎對象,我只所需的屬性被添加到在所述DB中映射的對象:繼承EF代碼優先
未映射對象(不知道如果它的事項,但baseobject是在另一個組件):
public class BaseObject
{
public virtual string Prop1 { get; set; }
public virtual string Prop2 { get; set; }
}
映射對象:
public class ChildObject : BaseObject
{
public virtual string Prop3 { get; set; }
public virtual string Prop4 { get; set; }
public virtual string Prop5 { get; set; }
}
是什麼的DbContext
註冊public DbSet<ChildObject> ChildObjects { get; set; }
我想什麼用dB
table:ChildObject
col:Prop1 (from BaseObject)
col:Prop2 (from BaseObject)
col:Prop3
col:Prop4
col:Prop5
看到要恢復,我想要做的,是有一個表中有兒童和基本屬性數據庫。
這是我目前得到的錯誤:
類型「namespace.ChildObject」沒有映射。檢查使用Ignore方法或 NotMappedAttribute數據註釋未明確排除類型 。驗證類型是否定義爲 作爲類,不是原始的,嵌套的或通用的,並且不從EntityObject繼承 。
我一直在四處尋找,但無法找到如何做到這一點。
任何想法?
編輯:
@Kyle Trauberman是正確的,但是,由於某種原因,似乎有與來自不同的裝配基類繼承的問題。我只是做了這個。
class BaseObjectClone : BaseObject { } /* BaseObject being in another assembly */
public class ChildObject : BaseObjectClone {
public virtual string Prop3 { get; set; }
public virtual string Prop4 { get; set; }
public virtual string Prop5 { get; set; }
}
所以,你不希望基類中定義的屬性映射到數據庫?或者你想要他們映射?你現在看到什麼,和你想看到什麼? – 2012-03-27 18:01:26
抱歉可能不清楚。我的意思是我不希望baseobject被映射爲不同的實體,但我想要顯示在子對象中的屬性。 – 2012-03-27 18:04:13
我能用我的答案[這裏](https://stackoverflow.com/a/45762308/1718832)解決我的類似案例 – vk5880 2017-08-18 18:01:39