EF 5 Code First Dictionary Mapping

时间:2012-09-28 18:30:06

标签: entity-framework ef-code-first entity-framework-5

有没有办法使用Entity Framework 5映射字典?

根据我在搜索时发现的情况,直到EF 4.1才支持它,不确定EF 5是否提供了任何创新的方法来轻松映射。

我正在使用字典为类的每个对象存储“可变数量的属性”。

如果不支持在这种情况下使用的最佳替代数据结构(由EF支持)?

1 个答案:

答案 0 :(得分:6)

仍然不支持字典。您必须使用传统的一对多关系。字典中的每个当前键/值对将作为记录存储在表中,并与主键实体(包含字典的实体)相关。该实体应如下所示:

public class Item {
    public int Id { get; set; } // unique autogenerated database key
    public string Key { get; set; }
    public string Value { get; set; }
    public int PrincipalId { get; set; } // FK to principal entity
}

属性类型和外键名称因当前情况而异。主要实体将只有:

public virtual ICollection<Item> Items { get; set; }