2012-03-21 7 views
2

nhibernateマッピングに問題があります。私はそれがSCESL_CESSIONSLIGNESテーブルにIdCessionsLignesにSCESL_SCESID列の名前を変更使用する場合、私はそのコードnhibernateによる列名の抽象化

namespace NhibernateLiaisonBase 
{ 
    [Serializable] 
    public class Cessions 
    { 
     #region Public Properties 
     public virtual int IdCessions 
     { 
      get; 
      set; 
     } 

     public virtual DateTime CessionsDate 
     { 
      get; 
      set; 
     } 
    #endregion 
    } 

    public class CessionsMap : ClassMapping<Cessions> 
    { 
     public CessionsMap() 
     { 
      Id<int>(x => x.IdCessions, map => map.Column("SCES_ID")); 
      Property<DateTime>(x => x.CessionsDate, map => map.Column("SCES_DATE")); 
      Table("SCES_CESSIONS"); 
     } 
    } 
} 

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using NHibernate.Mapping.ByCode.Conformist; 

namespace NhibernateLiaisonBase 
{ 
    [Serializable] 
    public class CessionsLignes 
    { 
     #region Public Properties 
     public virtual int IdCessionsLignes 
     { 
      get; 
      set; 
     } 

    public virtual int QuantiteCessionsLignes 
    { 
     get; 
     set; 
    } 

    public virtual Cessions cessions 
    { 
     get; 
     set; 
    } 
    #endregion 
} 

    public class CessionsLignesMap : ClassMapping<CessionsLignes> 
    { 
     public CessionsLignesMap() 
     { 
      Id<int>(x => x.IdCessionsLignes, map => 
      { 
       map.Generator(NHibernate.Mapping.ByCode.Generators.Identity); 
      }); 
      Property<int>(x => x.QuantiteCessionsLignes, map => map.Column("SCESL_QTE")); 
      ManyToOne<Cessions>(x => x.cessions, map => map.Column("SCESL_SCESID")); 
      Table("SCESL_CESSIONSLIGNES"); 
     } 
    } 
} 

とコードでのNHibernate 3.2マッピングを使用しています。私はのhbm.xmlファイルを生成し、その結果は以下のとおりです(最初

<?xml version="1.0" encoding="utf-8"?> 
<hibernate-mapping xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" namespace="NhibernateLiaisonBase" assembly="NhibernateLiaisonBase" xmlns="urn:nhibernate-mapping-2.2"> 
    <class name="Cessions" table="SCES_CESSIONS"> 
    <id name="IdCessions" column="SCES_ID" type="Int32" /> 
    <property name="CessionsDate" column="SCES_DATE" /> 
    </class> 
</hibernate-mapping> 

<?xml version="1.0" encoding="utf-8"?> 
<hibernate-mapping xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" namespace="NhibernateLiaisonBase" assembly="NhibernateLiaisonBase" xmlns="urn:nhibernate-mapping-2.2"> 
    <class name="CessionsLignes" table="SCESL_CESSIONSLIGNES"> 
    <id name="IdCessionsLignes" type="Int32"> 
     <generator class="identity" /> 
    </id> 
    <property name="QuantiteCessionsLignes" column="SCESL_QTE" /> 
    <many-to-one name="cessions" column="SCESL_SCESID" /> 
    </class> 
</hibernate-mapping> 

任意のアイデア

+1

あなたの問題は何ですか? –

+1

コードを実行すると、テーブルを変更して名前を変更しますSCESL_SCESID列をSCESL_CESSIONSLIGNES内のIdCessionsLignesに割り当てます。私の必要性は、ビジネスオブジェクトに列の名前を変更するだけです –

答えて

3

私はあなたのアイデンティティ・マップにColumnへの呼び出しを忘れてしまったと思う:?

Id<int>(x => x.IdCessionsLignes, map => 
{ 
    map.Column("SCESL_SCESID") 
     .Generator(NHibernate.Mapping.ByCode.Generators.Identity); 
});