0

既存のエンティティのすべての種類を管理するEntity Frameworkリポジトリを構築するにはどうすればよいですか?"ジェネリック"テクノロジなしのEntity Frameworkの汎用リポジトリ

しかし、私はgenericsを使わずにこれを達成したいと思います。なぜなら、いくつかの一般的なCRUD WPFコントロールをビルドするつもりで、実行時に「コーディング時間」に正しいエンティティを知ることができないからです。

答えて

1

次のコードを使用することによって、実行時にオブジェクトのEntitySetNameを決定することができる:方法​​(MSDN documentation)を有し、その後

internal static EntitySetBase GetEntitySet<TEntity>(this ObjectContext context) 
{ 
    EntityContainer container = context.MetadataWorkspace.GetEntityContainer(context.DefaultContainerName, DataSpace.CSpace); 

    EntitySetBase entitySet = container.BaseEntitySets.Where(item => item.ElementType.Name.Equals(typeof(TEntity).Name)) 
                  .FirstOrDefault(); 

    return entitySet; 
} 

のObjectContextを。

これらを組み合わせると、objectというリポジトリを作成してエンティティセット名を決定し、そのオブジェクトを追加することができます。

+0

他のCRUD操作はどうですか?リストア(findAll、findById ...)、更新、削除。 –

+0

@DiegoStiehl正しいObjectSetトラフのリフレクションを見つける必要があります –

+0

少しのコード例や実装されたサンプルクラスがありませんか?ありがとう。 –

関連する問題