0

既存のデータベースから作成されたすべてのエンティティが同じインターフェイスから継承されるようにしたいと考えています。

これはテンプレートを介して行うことができると思います。そして、私はその醜い.ttファイルを見てきましたが、助けはありません (または、私はそれを見つけていません)。

テンプレートのドキュメント、例などはありますか?

N 層設計やドメイン駆動設計など、一般的なパラダイムのヒントや既製のテンプレートはありますか?

4

1 に答える 1

2

「T4 テンプレート」を探します。これにより、T4 テンプレート (.ttファイル) の概要が説明されます。少し検索するだけで、このテンプレートを必要に応じて簡単に拡張できます。私はすでにこれを自分で行いましたが、EF4 のテンプレートを使用しました。テンプレが違うのかは知らん

このための小さなヘルパー関数を作成しました。

string Interfaces(EntityType entity)
{
    string interfaces = string.Empty;

    if (entity.Members.OfType<EdmProperty>().Any(edmProperty => edmProperty.Name == "Guid" && ((PrimitiveType)edmProperty.TypeUsage.EdmType).PrimitiveTypeKind == PrimitiveTypeKind.Guid))
    {
        interfaces += ", IHasWritableGuid";
    }

    return interfaces;
}

テンプレートが実際のエンティティ クラスを記述する部分 (これは新しいテンプレートでは確かに異なります) はWrite EntityType classes.、EF4 テンプレートの " " よりもやや下にあります。

<#=Accessibility.ForType(entity)#>
<#=code.SpaceAfter(code.AbstractOption(entity))#>
partial class
<#=code.Escape(entity)#> :
<#=BaseTypeName(entity, code)#>
<#= Interfaces(entity) #>

ここでは、interfaces メソッドへの呼び出しを追加しました。

これが正確な答えではないことはわかっていますが、テンプレート ファイルを自分で編集する際に役立つはずです。噛み砕いてください。:)

于 2013-02-03T22:18:35.073 に答える