【问题标题】:Entity Framework Code First and Classes that Implement IList<T>实体框架代码优先和实现 IList<T> 的类
【发布时间】:2011-12-08 17:43:23
【问题描述】:

我有一个必须实现 IList&lt;T&gt; (background info here) 的 ComplexType

不幸的是,Entity Framework 抱怨该接口所需的索引属性

[NotMapped]
public T this[int index]

(注意它用NotMapped 数据注解修饰)。

我在运行时收到 DbUpdateException 内部异常

不支持索引属性。

如果我注释掉该类实现 IList&lt;T&gt; 并注释掉索引属性,则该类的实例将按预期保留。

有没有办法让复杂类型实现 IList&lt;T&gt; 以被实体框架代码优先持久化?

【问题讨论】:

  • 我将标签更改为 EFv4.1,因为 EFv4.2 只是 4.1 的错误修复,不需要单独的标签。

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


【解决方案1】:

实体框架不支持开放的通用实体,我相信复杂类型也是如此。唯一的方法是定义从封闭泛型类型派生的特定类型,如链接问题中所示。

还有一些众所周知的错误,映射类不能有索引器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多