2

使用 Entity Framework 4.1 尝试获取整数集合,

基本上我有一个名为 Spec 的实体

public class Spec {
   public int Id{get;set;}
   public string Name {get;set;}
   public ICollection<int> TypeIds {get;set;} 
}

表 Specs 具有列 id、名称等,我正在尝试将 TypeIds 映射到具有列 specId TypeId 的表 SpecTypes,但我无法弄清楚它的映射

我一直在绑这样的东西

modelBuilder.Entity<Spec>().HasMany(r => r.TypesIds)
       .WithMany()
       .Map(m => m.ToTable("SpecTypes")
          .MapLeftKey("SpecId")
          .MapRightKey("TypeId"));
4

2 回答 2

1

我认为您不能拥有原始值集合的导航属性。我认为您只需要创建一个包含 Id 属性的实体并拥有这些属性的集合。所以你或多或少会有这样的东西:

public class Spec { 
   public int Id{get;set;} 
   public string Name {get;set;} 
   public ICollection<TypeEntity> TypeIds {get;set;}  
} 

public class TypeEntity { 
   public int Id {get;set;} 
} 
于 2012-02-06T23:28:32.847 回答
1

根据您的描述,您可能想要做这样的一对多关系。您通常只需要使用模型构建器来解决一些在类定义中无法完成的复杂映射。

public class Spec {
   public int Id{get;set;}
   public string Name {get;set;}
   public SpecType SpecType {get;set;} 
}


public class SpecType {
   public int Id{get;set;}
   public ICollection<Spec> Specs {get;set;}
}
于 2012-02-07T02:19:36.530 回答