我有我不想在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