1

ODP.NET経由でOracleでEF6を使用しています。そして、すべての db オブジェクトを大文字にする必要があります (変更できません)。

いくつかの規則を追加し、すべてのテーブル、列、外部キーなどを大文字にしました。2 つの TPH 階層に対して EF によって生成された Discriminator 列を除くすべて。

私の質問は、EF にこの列の名前を変更するように指示する方法です。私は構文の方法を知っていRequires(...).HasValue(...)ますが、すべてのタイプ (および将来のすべての新しい階層) に識別子の値を指定したくありません。デフォルト値に満足しています。列自体の名前を変更したいだけです。

4

1 に答える 1

0

次の規則に従って問題を解決しました(ここにあります):

public class UpperCaseDiscriminatorConvention : IStoreModelConvention<EdmProperty>
{
    public void Apply(EdmProperty property, DbModel model)
    {
        if (property.Name == "Discriminator")
        {
            property.Name = "DISCRIMINATOR";
        }
    }
}
于 2016-01-15T12:37:03.783 に答える