3

Entity Framework パワー ツールを使用して、既存のデータベースからコードをリバース エンジニアリングしています。データベースに複数のスキーマがありますが、dbo スキーマのみのクラスを生成したいと考えています。どうすればカスタマイズできますか

4

2 に答える 2

4

リバース エンジニアリング テンプレートを編集する必要があります。Entity Framework 6 に対して次のことを行いました。

Context.tt ではスキーマが現在利用できないため、不要なコードは手動で削除する必要があります。

Entity.tt と Mapping.tt では、ここでコードを変更する必要があります。

var efHost = (EfTextTemplateHost)Host;
var code = new CodeGenerationTools(this);

var efHost = (EfTextTemplateHost)Host;
if((string)efHost.TableSet.MetadataProperties["Schema"].Value == "dbo"){
var code = new CodeGenerationTools(this);

そして、これら 2 つのファイルの最後に閉じ括弧を配置します。

<#
}
#>

「dbo」を任意のものに変更します。

于 2013-10-17T22:21:37.920 に答える
1

T4 テンプレートを使用できます ([Entity Framework] メニュー > [リバース エンジニア テンプレートのカスタマイズ])。それらでスキーマをテストできます: if (efHost.TableSet.MetadataProperties["Schema"].Value == "Correct Schema") // 生成します

于 2013-07-03T14:37:57.557 に答える