【发布时间】:2012-02-16 04:54:22
【问题描述】:
我找不到映射值对象集合的方法,这可能吗?
public class AnEntity
{
public int Id {get;set;}
public ICollection<Guid> Values {get;set;} // <-- this
}
谢谢, E.
【问题讨论】:
标签: entity-framework-4 ef4-code-only
我找不到映射值对象集合的方法,这可能吗?
public class AnEntity
{
public int Id {get;set;}
public ICollection<Guid> Values {get;set;} // <-- this
}
谢谢, E.
【问题讨论】:
标签: entity-framework-4 ef4-code-only
因为这是不可能的。您只能映射实体集合(带键的类)。您可以通过使用特殊实体并公开为您提供投影的第二个属性来解决此问题:
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.Split、String.Join 来提供集合的模拟。
【讨论】: