无法将EF实体集添加到字典

本文关键字:添加 字典 实体 EF | 更新日期: 2023-09-27 17:53:23

我正在尝试添加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

无法将EF实体集添加到字典

你真的需要字典包含一个ObjectSet吗?还是有一个实体列表就足够了?

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

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

或者,另一种方法是尝试创建一个具有动态类型作为值的字典,然后编译器会离开你,我认为,但是当使用字典内部的值时,你会有其他问题,因为你必须转换它们以便能够在设计时访问属性。

你有两个不同的对象

MathApplication.Models.PlanSection

System.Data.Objects.DataClasses.EntityObject

检查您的代码,并在两侧使用适当的单个对象