我已經通過實體框架設計自定義屬性不會出現在DDL代
這種運作良好,增加了自定義屬性的實體框架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
這些都不是我的自定義屬性。
我錯過了什麼嗎?如何在T4代碼生成模板中訪問IEntityDesignerExtendedProperty
的值?
編輯:這裏是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莫名其妙。
你能顯示你的EDMX在添加屬性後(即添加屬性的部分/實體/複合類型應該足夠)? – Pawel
完成,請參閱編輯。 – cheeesus