2009-08-19 61 views
1

我有一個遺留系統,其中兩個表之間的關係沒有明確定義,並且沒有任何鍵(主鍵或unqiue定義)。唯一的相關列是「用戶名」流利的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對象時明顯失敗。

如何獲得映射定義以生成INSERT語句,而不是「保存」命令的UPDATE?

乾杯提前

奧利

回答

0

的原因是因爲沒有數據庫中的任何引用完整性,沒有主鍵,組合鍵沒有外鍵約束...

又一次另一個應用程序那個數據庫不適合用途...