0
HI,Fluent NHibernate是否將ClassMap Id和SubClassMap Id引用到引用表中?
,我有以下實體我試圖映射:
public class Product {
public int ProductId { get; private set; }
public string Name { get; set; }
}
public class SpecialProduct : Product {
public ICollection<Option> Options { get; private set; }
}
public class Option {
public int OptionId { get; private set; }
}
而下面的映射:
public class ProductMap : ClassMap<Product> {
public ProductMap() {
Id(x => x.ProductId);
Map(x => x.Name);
}
public class SpecialProductMap : SubclassMap<SpecialProduct> {
public SpecialProductMap() {
Extends<ProductMap>();
HasMany(p => p.Options).AsSet().Cascade.SaveUpdate();
}
}
public class OptionMap : ClassMap<Option> {
public OptionMap() {
Id(x => x.OptionId);
}
}
的問題是,我的表落得這樣的:
Product
--------
ProductId
Name
SpecialProduct
--------------
ProductId
Option
------------
OptionId
ProductId // This is wrong
SpecialProductId // This is wrong
應該只有一個ProductId和單個r參照SpecialProduct表,但我們得到「兩個」ID和兩個對SpecialProduct.ProductId的引用。
任何想法?
感謝 安迪
你能告訴你如何*想要*你的表最終? – Jay 2010-05-21 20:02:45
有兩個'ProductId'列,因爲'SpecialProduct'表必須以某種方式返回到'Product',這是一個外鍵。 至於'選項'表,真的看起來錯了。您可能遇到了錯誤。我已經打開了[ticket](http://fluentnhibernate.lighthouseapp.com/projects/33236-fnh/tickets/184-hasmany-in-subclass-generates-wrong-foreign-keys),我會稍後進行調查。 – 2010-05-21 20:08:31
我無法用所提供的信息重現您的問題。請您可以評論我之前鏈接到的門票,並提供儘可能多的額外信息。精簡的解決方案可以很好地解決問題。 – 2010-05-22 03:27:37