hierarchical-data - EF4 CTP5 自引用分层实体映射

标签 hierarchical-data ef4-code-only

好吧,这应该很容易,但我一直在撕扯我的头发。这是我的 POCO(它与机器零件有关,所以一个零件可以包含在父零件中):

public class Part
{
   public int ID { get; set; }
   public string Name { get; set; }
   public Part ParentPart { get; set; }
}

创建数据库表时,列名为“ID”、“Name”和“PartID”。如何将最后一列的名称更改为“ParentPartID”?

最佳答案

基本上,您想重命名独立关联中的外键,这是执行此操作的流畅 API 代码:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<Part>()
                .HasOptional(p => p.ParentPart)
                .WithMany()
                .IsIndependent()
                .Map(m => m.MapKey(p => p.ID, "ParentPartID"));
}

但是,由于 CTP5 中的错误,此代码在自引用关联(这是您的关联类型)中作为异常抛出。解决方法是将您的关联更改为外键关联,如下所示:

public class Part
{
    public int ID { get; set; }
    public string Name { get; set; }                
    public int ParentPartID { get; set; }

    [ForeignKey("ParentPartID")]
    public Part ParentPart { get; set; }
}

关于hierarchical-data - EF4 CTP5 自引用分层实体映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4612053/

相关文章:

mysql - 在分层 Mysql 查询方面需要帮助

mysql - 如何检索作为集合检索的分层数据

c# - 如何使用 EF 将数组属性映射到分隔字符串数据库字段?

asp.net-mvc - EF4、MVC 3、Azure 和 Code First 或传统

entity-framework-4 - 如何首先在 EF4 代码中将表拆分为多种类型?

jquery - 在 Kendo 分层数据源中搜索

python - 将 csv 转换为 Newick 树

.net - 分层数据和 BerkeleyDB

.net - 具有抽象类的 EF4 TPT - 定义关系

c# - 如何在 WCF 数据服务中接受 JSON?