2009-03-01 16 views
0

Bir tablo B'ye üçüncü bir tablodan C referansları olan bir tablo A var. C, A ve B'nin birincil anahtarını içerir. Her A için en fazla bir kayıt vardır. C için A için bir eşleme oluşturmaya çalıştığımda, Referanslar işlevini kullanıyorum, ancak eşlemenin doğrudan başka bir tablodan geçmediğini belirtmeme izin vermiyor. Bunu yapmanın doğru yolu nedir? Ben o A haritalama bir HasManyToMany olacağını yapabileceğini biliyorumFluent NHibernate ek tablodan tek bir haritalama

+0

tablosu C varolmaya için özel bir nedeni var mı? DB tasarımına baktığımızda, bire bir eşleme gibi görünmüyor. Bunun bir nedeni – gcores

+0

nedenlerinden biri, eski kodu (A) 'nın çok fazla sütuna sahip olmasını engellemektir. – eulerfx

cevap

0

Sanırım cevabı google kod örneklerinde buldum. haritalama sınıfında, o yazmak mümkündür ek:

WithTable("SomeTable", c => { c.Map(x => x.Col1); }); 
0

sadece haritalama:

HasManyToMany(x => x.B) 
    .WithTableName("C") 
    .WithParentKeyColumn("A_Id") 
    .WithChildKeyColumn("B_Id"); 

sorun haritalama A Bs bir listesini değil, sadece bir tane olması için olmasıdır. Temiz bir şekilde sadece bir tane almak için nasıl yapabileceğini bilmiyorum.