2009-08-19 7 views
1

2つのテーブル間の関係が明示的に定義されておらず、キー(プライマリまたはユニークではない)が存在しないレガシーシステムがあります。唯一の関連列のようなFluent nHibernate:主キーが定義されていない2つのテーブルをマップする方法

何か「ユーザー名」です:私は、マッピング定義を以下している

Table: Customer 
Column: Id, 
Column: Username, 
Column: FirstName, 

Table: Customer_NEW 
Column: Username 
Column: FirstNameNew 

public sealed class CustomerMap : ClassMap<Customer>, IMap 
{ 
    public CustomerMap() 
    { 
     WithTable("customers"); 
     Not.LazyLoad(); 
     Id(x => x.Id).GeneratedBy.Increment(); 
     References(x => x.CustomerNew, "Username") 
      .WithForeignKey("Username") 
      .Cascade.All(); 

} 

    public sealed class CustomerNewMap : ClassMap<CustomerNew>, IMap 
    { 
    public CustomerNewMap() 
    { 
     WithTable("customers_NEW"); 
     Not.LazyLoad(); 
     Id(x => x.Username).GeneratedBy.Assigned(); 
     Map(x => x.FirstNameNew); 
    } 
    } 

問題はNHibernateはをの「リファレンス」のUPDATE文を生成していますCustomerNewオブジェクトへの参照を持つ新しいCustomerオブジェクトを挿入しようとすると明らかに失敗するCustomer Mapping定義。

「保存」コマンドの更新ではなく、INSERTステートメントを生成するようにマッピング定義を取得するにはどうすればよいですか?またしても、事前に

乾杯

Ollie第

答えて

0

データベース内の任意の参照整合性、無主キー、複合キーではない外部キー制約がないので、理由は...

別のアプリケーション目的に合わないデータベースがあります...

関連する問題