0

我正在尝试将 EF 实体集添加到字典中,如以下代码所示:

private static readonly Dictionary<string, ObjectSet<EntityObject>> Gateways 
    = new Dictionary<string, ObjectSet<EntityObject>>
{
    {"PlanSection", ModelEntities.PlanSection}
};

但编译器说:

cannot convert from 'System.Data.Objects.ObjectSet<MathApplication.Models.PlanSection>' to 'System.Data.Objects.ObjectSet<System.Data.Objects.DataClasses.EntityObject>'

PlanSection是从数据库表映射的类。我的代码有什么问题?

编辑 这是PlanSection定义:

public partial class PlanSection : EntityObject
4

2 回答 2

1

你有两个不同的对象

MathApplication.Models.PlanSection

System.Data.Objects.DataClasses.EntityObject

检查您的代码并在两侧使用正确的单个对象。

于 2013-01-14T09:16:35.193 回答
1

你真的需要字典来包含一个 ObjectSet 还是足够有实体列表。

如果实体列表足够,那么为什么不将成员设置为 IEnumerable 然后添加为值 ModelEntities.PlanSection.LoadAll() 或其他东西。

如果您的意图是将所有对象集统一在该字典中,请尝试创建一个将由您的所有实体实现的接口,然后将字典的值类型设置为类似 IEnumerable。

或者,另一种方法是尝试创建一个具有动态类型作为值的字典,然后我认为编译器会让你一个人呆着,但是在使用字典中的值时你会遇到其他问题,因为你必须使它们能够在设计时访问属性。

于 2013-01-14T09:20:30.667 回答