これがこの問題を解決するための最良の方法だとは言いませんが、これが私がやった方法です。BoundField asp コントロールにバインドするためにプレーンテキストで列名を取得できるようにする必要がありましたが、それは EF テンプレートに焼き付けられていませんでした。
そのため、「単純なプロパティ」、つまり列名をロードするだけのこのコードを追加して、それを可能にしました。「ColumnNames」と呼ばれる「テーブル」オブジェクトに構造体を追加し、列名を const 文字列として公開します。
<#
if (simpleProperties.Any())
{
#>
public struct ColumnName
{
<#
foreach (var simpleProperty in simpleProperties)
{
#>
public const string <#= simpleProperty #> = "<#= simpleProperty #>";
<#
}
#>
}
<# }
#>
}
これを、ソリューションの edmx ファイルの下に個々のファイルを生成する T4 テンプレートのこのコードの前に配置しました。
<#
EndNamespace(code);
}
これにより、次のようなコードが作成されます。
public partial class JobPosting
{
public int PositionRowId { get; set; }
public System.Guid PositionRelatedGuid { get; set; }
public struct ColumnName
{
public const string PositionRowId = "PositionRowId";
public const string PositionRelatedGuid = "PositionRelatedGuid";
}
}
これが役立つことを願っています。