3

Entity Framework Code First オブジェクトに、追加のメタデータ ( DataTypeAttributeや、場合によっては新しいカスタム属性など) で注釈を付けました。このコードのバージョン ( http://www.minddriven.de/index.php/technology/dot-net/web/asp-net-mvc/check-data-annotations-from-codeから) は、 EF Code First POCO オブジェクトの Type オブジェクトを取得したら、属性を追加します。

ただし、すべてのエンティティを見つける MetadataWorkspace から移動する方法がわかりません。

ObjectContext objContext = ((IObjectContextAdapter)this).ObjectContext;
MetadataWorkspace mw = objContext.MetadataWorkspace;
var entities = mw.GetItems<EntityType>(DataSpace.OSpace);

属性に反映する必要があるPOCOクラスのタイプに。

EntityTypeからPOCO オブジェクトまたはそのプロキシにアクセスするにはどうすればよいですか? または、GetItems() を使用せずにコンテキスト内のすべての POCO オブジェクトを見つけるにはどうすればよいですか?

関連リンク:

4

3 に答える 3

2

これを行う直接的な方法があるかもしれませんが、フルネームからタイプを取得できます

var types = from entity in entities
            select Type.GetType(entity.FullName);
于 2013-05-22T20:20:13.013 に答える
-1

あなたが望むものに私が正しければ、私が少し前に投稿し た同様の問題を説明しているので、これは役立つはずです:

プロパティがORMモデルで計算済みとしてマークされていることを単体テストで確認するにはどうすればよいですか?

また、すべてを要約したこの他の投稿も確認してください。

CreateDatabaseをサポートしていないプロバイダーを使用してプログラムでデータベースを作成するためのモデルスキーマを取得します
(すべて私の以前の投稿です)

要するに、私はほとんどの情報を読むことができました-しかし、それは完璧ではなく(私の記憶が正しければ、今は確認できません)、特定の状況でいくつかの問題があり、正確に必要なものによって異なります)。

于 2013-05-22T20:28:39.910 に答える