0

Microsoft SQL Server データベース (2005 以降) で NHibernate 3 を使用しています。現在、空の文字列ではなく常に NULL をデータベースに書き込むように NHibernate に指示する方法を探しています。これを行う最良の方法は何ですか?- または、これを行うためのスイッチが NHibernate にあるのでしょうか。ご協力いただきありがとうございます。

4

1 に答える 1

0

PreInsertEventListener を追加し、関数をオーバーライドして、空の文字列から NULL 値への必要な変換を行うことができます。

これを行う方法は次のとおりです。

 public class NhibernateEventListeners :  IPreInsertEventListener
    {
         public bool OnPreInsert(PreInsertEvent nHibernateEvent)
        {
            var entityBeingInserted = nHibernateEvent.Entity;
            if (entityBeingInserted == null)
                return false;
             if (property.PropertyType==typeof(string))
                 {
                    //use reflection to set the property value to null   
                 }
            return false;
        }
   }

また、sessionfactory のセットアップ中に、以下を構成に追加してください。

_config.ExposeConfiguration(
                        config => config.SetListener(ListenerType.PreInsert, new NhibernateEventListeners()));

これがあなたが探しているものであり、あなたを助けることを願っています.

于 2012-03-22T14:13:52.127 に答える