1

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

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

谢谢,E。

4

1 回答 1

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以提供集合的模拟。

于 2012-02-15T20:54:22.970 回答