Entity Framework 5 デザイナーの [プロパティ] ダイアログにカスタム プロパティを追加しました。
これはうまく機能し、プロパティが [プロパティ] ダイアログに表示され、EDMX ファイルに保存されます。
ここで、DDL 生成プロセスでそのプロパティを使用したいと思います。T4 テンプレート ファイルSSDLToSQL10.tt
(にありますC:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\DBGen
) を編集しました。
ただし、カスタム プロパティはメタデータ ツリーのどこにも表示されないようです。ウェブサイト(ドイツ語)
拡張プロパティがEntityType.MetadataProperties
コレクションに表示されるはずですが、このコレクションには次のメンバーしか含まれていません:
KeyMembers Members Name NamespaceName Abstract BaseType DataSpace MetadataProperties
それらのどれも私のカスタム プロパティではありません。
何か不足していますか?IEntityDesignerExtendedProperty
T4 コード生成テンプレートで の値にアクセスするにはどうすればよいですか?
編集:カスタム プロパティを持つ EDMX パーツは次のとおりです。
<edmx:ConceptualModels>
<Schema ...>
....
<EntityType Name="Entity1">
<Key>
<PropertyRef Name="Id" />
</Key>
<Property Type="Guid" Name="Id" Nullable="false" annotation:StoreGeneratedPattern="None" />
<Property Type="String" Name="Name" Nullable="false" />
<a:MyNewProperty xmlns:a="http://schemas.tempuri.com/MyNewProperty">True</a:MyNewProperty>
</EntityType>
どうにかしてそのカスタム プロパティを CSDL から SSDL にマップする必要があると思います。