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

ObjectSet を含むディクショナリが本当に必要ですか、それともエンティティのリストがあれば十分ですか。

エンティティのリストで十分な場合は、メンバーを IEnumerable に設定してから、ModelEntities.PlanSection.LoadAll() などの値として追加しないでください。

すべてのオブジェクトセットをそのディクショナリに統合することを意図している場合は、すべてのエンティティによって実装されるインターフェイスを作成してから、ディクショナリの値 Type を IEnumerable などに設定してみてください。

または、別の方法として、値として動的な型を持つ辞書を作成してみると、コンパイラーはあなたを放っておくと思いますが、辞書内の値を使用するときに他の問題が発生する可能性があります。設計時にプロパティにアクセスできるようにキャストします。

于 2013-01-14T09:20:30.667 に答える
1

2 つの異なるオブジェクトがあります

MathApplication.Models.PlanSection

System.Data.Objects.DataClasses.EntityObject

コードを確認し、両側で適切な単一オブジェクトを使用してください。

于 2013-01-14T09:16:35.193 に答える