Entity framework 如何在实体框架中映射基本实体属性?

Entity framework 如何在实体框架中映射基本实体属性?,entity-framework,Entity Framework,我正在建立一个实体模型,其中大多数其他实体都有一个公共的基础实体。例如: 个人->基本实体 基本实体 身份证件 创建 等等 人 名字 姓氏 等等 在相应的存储表中,所有列都在Person表中 人 身份证件 创建 名字 姓氏 等等 当我去映射Person实体中的实体属性时,我想将Person表中的Id列映射到EntityBase中的Id属性,将FirsName列映射到FirstName实体属性 但是,当您在Person实体上并添加用于映射的Person表时,您只能映射Person实体中的属性,而不

我正在建立一个实体模型,其中大多数其他实体都有一个公共的基础实体。例如:

个人->基本实体

基本实体 身份证件 创建 等等

人 名字 姓氏 等等

在相应的存储表中,所有列都在Person表中

人 身份证件 创建 名字 姓氏 等等

当我去映射Person实体中的实体属性时,我想将Person表中的Id列映射到EntityBase中的Id属性,将FirsName列映射到FirstName实体属性

但是,当您在Person实体上并添加用于映射的Person表时,您只能映射Person实体中的属性,而不能映射继承类中的属性

我在概念上设置错误了吗


谢谢

我认为你想做的事在EF是不可能的。也许我错了。我通过定义接口实现了公共属性:

public interface ICreationInfo
{
    DateTime CreationDate { get; set; }
    User CreatedBy { get; set; }
    EntityReference<User> CreatedByReference { get; set; }
}

public interface ILastModificationInfo
{
    DateTime LastModificationDate { get; set; }
    User LastModificationBy { get; set; }
    EntityReference<User> LastModificationByReference { get; set; }
}

当我想访问基本属性时,我会检查接口。

这里的关键是要有一个基类,它不是概念模型中的实体

EF1.0(3.5 SP1)或EF4.0 Beta 2中不支持这种方法

但在EF 4.0 RTM中,您可以参加如下课程:

public class Base
{
  public DateTime CreatedDate{get;set;}
}
public class Derived:Base
{
   public string SomeProperty {get;set;}
}
并将“派生”类映射到概念模型中类似的实体(随机组成的实体DSL!):

要做到这一点,您需要自己编写类(仅使用POCO或代码),而不是让EF为您生成它们

希望这有帮助

亚历克斯

public partial class User : IBasicEntityInfo, ICreationInfo, ILastModificationInfo
{

}
public partial class Project : IBasicEntityInfo, ICreationInfo, ILastModificationInfo
{

}
public partial class Group : IBasicEntityInfo, ICreationInfo, ILastModificationInfo
{

}
public class Base
{
  public DateTime CreatedDate{get;set;}
}
public class Derived:Base
{
   public string SomeProperty {get;set;}
}
entity Derived{
   DateTime CreateDate;
   string SomeProperty;
}