Liv*_*er9 14 c# asp.net-mvc entity-framework ef-code-first
我想在我的一个数据类中使用以下ICollection属性(让我们称之为"Foo")
public class Foo
{
[Key]
public int FooId { get; set; }
public string SomeValueOrOther { get; set; }
public virtual ICollection<string> AllowedBars { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我可以在使用实体上下文时添加字符串值,但它们不会"去任何地方".换句话说,没有生成表来表示此关系,因此不会保存任何值.我期望的是一个包含两列的表,一个用于"FooId",一个用于"AllowedBar",EF用于将其自动映射到集合(与复杂类型一样).
由于没有发生这种情况,我必须使用上面描述的两个属性创建一个名为"FooAllowedBar"的类.
这让我很不高兴,因为它是我在整个项目中唯一的"连接"类型.当然,它可以工作,所以一个方框被勾选,但有没有人知道如何让EF为字符串集合关系生成一个表?(或int,或datetime等)
很可能,从EF上的小信息(仍然!),这种功能尚未得到支持.我想接近一个确定的答案.
非常感谢,Rob
Lad*_*nka 17
EF只能使用实体类.每个实体类都必须具有已定义的主键,因此您的方案中的最小值为:
public class StringData
{
public int Id { get; set; }
public string Data { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
或者更糟
public class StringData
{
[Key]
public string Data { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
现在您可以定义StringData的集合以将其映射为相关表:
public virtual ICollection<StringData> AllowedBars { get; set; }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5547 次 |
| 最近记录: |