无法将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
你真的需要字典包含一个ObjectSet吗?还是有一个实体列表就足够了?
如果实体列表足够,那么为什么不直接将成员设置为IEnumerable,然后将其作为值添加ModelEntities.PlanSection.LoadAll()或其他东西。
如果你的意图是将所有的对象集统一在那个字典中,那么尝试创建一个将由所有实体实现的接口,然后将字典的值Type设置为类似IEnumerable的东西。
或者,另一种方法是尝试创建一个具有动态类型作为值的字典,然后编译器会离开你,我认为,但是当使用字典内部的值时,你会有其他问题,因为你必须转换它们以便能够在设计时访问属性。
你有两个不同的对象
MathApplication.Models.PlanSection
和
System.Data.Objects.DataClasses.EntityObject
检查您的代码,并在两侧使用适当的单个对象