HI,NHibernate fluide amène ClassMap Id et SubClassMap Id à la table référencée?
je les entités suivantes, je suis en train de la carte:
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; }
}
Et les applications suivantes:
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);
}
}
Le problème est que mes tables finissent comme ceci:
Product
--------
ProductId
Name
SpecialProduct
--------------
ProductId
Option
------------
OptionId
ProductId // This is wrong
SpecialProductId // This is wrong
Il ne devrait y avoir une ProductId et unique r Il existe une référence à la table SpecialProduct, mais nous obtenons les identifiants "both" et deux références à SpecialProduct.ProductId.
Des idées?
Merci Andy
Pouvez-vous montrer comment vous * voulez * que vos tables se retrouvent? – Jay
Il existe deux colonnes 'ProductId' car la table' SpecialProduct' doit se reconnecter à 'Product', c'est une clé étrangère. Comme pour la table 'Option', cela semble vraiment faux. Vous avez peut-être rencontré un bug. J'ai ouvert un [ticket] (http://fluentnhibernate.lighthouseapp.com/projects/33236-fnh/tickets/184-hasmany-in-subclass-generates-wrong-foreign-keys) pour cela, et je vais enquêter plus tard. –
Je ne parviens pas à reproduire votre problème avec les informations fournies. S'il vous plaît pourriez-vous commenter sur le billet que j'ai lié précédemment avec autant d'informations supplémentaires que vous pouvez fournir. Une solution dépouillée reproduisant le problème serait excellente. –