Entity framework 4 是否可以将值对象集合映射到EF4.x?
我找不到映射值对象集合的方法,可能吗Entity framework 4 是否可以将值对象集合映射到EF4.x?,entity-framework-4,ef4-code-only,Entity Framework 4,Ef4 Code Only,我找不到映射值对象集合的方法,可能吗 public class AnEntity { public int Id {get;set;} public ICollection<Guid> Values {get;set;} // <-- this } 公共类实体 { 公共int Id{get;set;} 公共ICollection值{get;set;}/,因为这是不可能的。您只能映射实体的集合(带键的类)。您可以通过使用特殊实体并公开第二个属性来解决此问题,该属
public class AnEntity
{
public int Id {get;set;}
public ICollection<Guid> Values {get;set;} // <-- this
}
公共类实体
{
公共int Id{get;set;}
公共ICollection值{get;set;}/,因为这是不可能的。您只能映射实体的集合(带键的类)。您可以通过使用特殊实体并公开第二个属性来解决此问题,该属性将为您提供投影:
public class SecondEntity {
public Guid Id { get; set; }
}
public class AnEntity {
public int Id { get; set; }
public virtual ICollection<SecondEntity> Values { get; set; }
public IEnumerable<Guid> GuidValues {
return Values.Select(v => v.Id);
}
}
公共类第二实体{
公共Guid Id{get;set;}
}
公共类实体{
公共int Id{get;set;}
公共虚拟ICollection值{get;set;}
公共IEnumerable guidValue{
返回值。选择(v=>v.Id);
}
}
如果您希望集合较小,您也可以使用单个字符串字段而不是相关集合,并使用string.Split
,string.Join
来模拟集合。这是第二个实体的充分完整定义吗?它不也需要FK字段吗?