エンティティ モデルに基づいて .cs クラスを生成する T4 ファイルに取り組んでいます。取得しようとしているものの 1 つは、モデル内のマッピング情報です。具体的には、モデルの各フィールドについて、マップ先のデータベース フィールド名を取得しようとしています。
マッピング情報は明らかに StorageMappingItemCollection に格納されていることがわかりましたが、それを照会して必要なデータを取得する方法を理解するのに苦労しています。誰かがこのクラスで働いていて、おそらくガイダンスを提供できますか?
これまでのコードは次のようになります (問題のある行まですべてを貼り付けました)。
<#
System.Diagnostics.Debugger.Launch();
System.Diagnostics.Debugger.Break();
#>
<#@ template language="C#" debug="true" hostspecific="true"#>
<#@ include file="EF.Utility.CS.ttinclude"#>
<#@ output extension=".cs"#><#
CodeGenerationTools code = new CodeGenerationTools(this);
MetadataLoader loader = new MetadataLoader(this);
CodeRegion region = new CodeRegion(this, 1);
MetadataTools ef = new MetadataTools(this);
string inputFile = @"MyModel.edmx";
EdmItemCollection ItemCollection = loader.CreateEdmItemCollection(inputFile);
StoreItemCollection storeItemCollection = null;
loader.TryCreateStoreItemCollection(inputFile, out storeItemCollection);
StorageMappingItemCollection storageMappingItemCollection = null;
loader.TryCreateStorageMappingItemCollection(
inputFile, ItemCollection, storeItemCollection, out storageMappingItemCollection);
var item = storageMappingItemCollection.First();
storageMappingItemCollection には GetItem() などのメソッドがありますが、モデルに存在することがわかっているフィールドのデータを返すことはできません。
事前にthx!