4

エンティティデータモデル(* .edmx)から生成されたすべてのエンティティタイプのリストを取得するにはどうすればよいですか?

私はすでにデータベースからのテーブルの名前とモデルのインスタンス(.edmx)を持っています。

すべてのデータエンティティのTypeのインスタンスが必要です。

私のデータベースに2つのテーブルがあるとしましょう:Employee EmployeeType

次に、モデルは2つのクラスを生成し、データをマップします。私が探しているのは、(タイプの)リストを取得する方法です。この場合、結果リストはEmployee.GetType()およびEmployeeType.getType()のインスタンスをカウントします。

ありがとう!

(VS2010、VB.NET、EF4)

4

2 に答える 2

2

それを行う方法の1つは次のとおりです。

((EdmItemCollection)ctx
    .MetadataWorkspace
    .GetItemCollection(DataSpace.CSpace))
    .GetItems<EntityType>()

これまで試したことはありませんが、ワークスペースから直接アイテムを取得できる場合もあります。

ctx.MetadataWorkspace.GetItems<EntityType>(DataSpace.CSpace)

DbContextを使用している場合は、次のようにObjectContextを取得できます。

((IObjectContextAdapter)ctx).ObjectContext
于 2013-01-24T23:23:10.410 に答える
0
using (AdventureWorksEntities context = new AdventureWorksEntities())
{
    IQueryable<Product> productsQuery = from product in context.Products
                                        select product;

    Console.WriteLine("Product Names:");
    foreach (var prod in productsQuery)
    {
        Console.WriteLine(prod.Name);
    }
}

オブジェクトクエリ-MSDN

于 2013-01-24T20:34:01.170 に答える