是否可以使用EF4.x映射值对象的集合?

时间:2012-02-15 20:00:03

标签: entity-framework-4 ef4-code-only

我找不到映射值对象集合的方法,是否可能?

public class AnEntity
{
    public int Id {get;set;}
    public ICollection<Guid> Values {get;set;} // <-- this
}

谢谢, 即

1 个答案:

答案 0 :(得分:2)

因为不可能。您只能映射实体集合(具有键的类)。您可以通过使用特殊实体并公开第二个属性来解决此问题,该属性将为您提供投影:

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);
    }
}

如果您希望该集合很小,您还可以使用单个字符串字段而不是相关集合,并使用String.SplitString.Join来提供集合模拟。