1

FluentNhibernate を使用してその NHibernate マッピングを自動的に構築したいモデル ライブラリがあります。このモデルに追加したい規則があります。それは、各テーブル名が「s」で終わるというものです。だからここに私がすることです:

new AutoPersistenceModel()
            .AddEntityAssembly(typeof(User).Assembly)
            .Conventions.Add(typeof(ClassConvention))
            .WriteMappingsTo(@"E:\Temp\");

ClassConvention のコードは次のとおりです。

private class ClassConvention:IClassConvention
    {
        public void Apply(IClassInstance instance)
        {
            instance.Table(instance.EntityType.Name+"s");
        }
    }

このコードを実行すると、クラスタグにテーブル属性が追加されません。私のコードの何が問題なのかを理解するのを手伝ってください。

アップデート:

コードをデバッグしましたが、次の行が確実です。

instance.Table(instance.EntityType.Name+"s");

と呼ばれます。

4

1 に答える 1

0

クラスを定義する規則は、プライベートではなくパブリックにする必要があります

于 2012-12-27T22:58:16.250 に答える