ここでこのサンプルを実行します: https://github.com/jagregory/fluent-nhibernate/blob/master/src/Examples.FirstProject/Program.cs
文字列型のすべての C# プロパティは、TEXT sql フィールドにマップされます。
nvarchar OR varchar は、DEFAULT 設定であることを除いて、私がそうするように。
どうすればそれを変更できますか?
私はこれを行うことができることを知っています:
Map(x => x.Name).CustomSqlType("nvarchar").Length(50); // does not work !!!
Map(x => x.Name).CustomSqlType("nvarchar (50)"); // does work !!!
しかし、私はすべてのフィールドを変更したくありません...
更新:...したがって、=>を介してカスタムコンベンションを行うことができます
私がしなければならないことは、次のようなカスタム Convention クラスを作成することです。
public class ColumnStringToNVarCharConvention : IPropertyConvention, IPropertyConventionAcceptance
{
public void Apply(IPropertyInstance instance)
{
instance.CustomSqlType("nvarchar");
}
public void Accept(IAcceptanceCriteria<IPropertyInspector> criteria)
{
criteria.Expect(x => x.Property.GetType().Equals(typeof(string)));
}
}
誰かが上記のコードを適切にできますか? 私はそれをテストしましたが、なぜかうまくいきませんでした...