I have :-
public abstract class Item
{
public virtual int Id { get; set; }
}
public class GeneralItem : Item
{
public virtual string Description { get; set; }
}
public class LegacyItem: Item
{
public virtual string Name { get; set; }
}
public class Blah
{
public virtual Item Item { get; set; }
}
This is done as Table per subclass inheritance, now when I load an
object of type Blah, Item is a Item Proxy, and there seems to be no
way to recover the original Item ( either a legacy or general one )
I'm not sure if its a mapping problem?
its mapped like
public class ItemMap : ClassMap<Entities.Item>
{
public ItemMap()
{
Table("Items");
Id(x => x.Id);
}
}
public class GeneralItemMap : SubclassMap<Entities.GeneralItem>
{
public GeneralItemMap()
{
Table("GeneralItems");
Map(x => x.Description);
}
}
public class LegacyItemMap : SubclassMap<Entities.LegacyItem>
{
public LegacyItemMap()
{
Table("LegacyItems"); Map(x => x.Name);
}
}
public class BlahMap : ClassMap<Entities.Blah>
{
public BlahMap()
{
Table("Blahs");
Id(x => x.Id);
References(x => x.Item);
}
}
I'd like some piece of code to be able to go something like :-
var item = Repository.Items.Get(1);
var legacy = item as LegacyItem;
How can I achieve this?
--
You received this message because you are subscribed to the Google Groups
"Fluent NHibernate" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/fluent-nhibernate?hl=en.