2011-09-12 267 views
0

我有2个类,MasterItem和ItemUOM。 ItemUOM是我已经映射和MasterItem一个简单的表的视图。 是否有可能在ItemUOM中引用MasterItem。流利Nhibernate映射

ItemUOM类:

public class ItemUOM : EntityBase<ItemUOM> 
{ 
    public virtual string ItemAlias { get; set; } 
    public virtual string Code { get; set; } 
    public virtual string UOM { get; set; } 
    public virtual decimal PackSize { get; set; } 
    public virtual long MasterItemID { get; set; } 
    **public virtual DomainEntities.MasterItem MasterItem { get; set; }** 
} 

ItemUOM映射

public ItemUOMMapping() 
    { 
     Table("View_ItemUOM"); 
     Id(x => x.ID); 
     Map(x => x.Code); 
     Map(x => x.ItemAlias); 
     Map(x => x.UOM); 
     Map(x => x.PackSize); 
    } 

我怎么可以参考类 “MasterItem”。

感谢弗朗索瓦

回答

1

您需要删除 MasterItemID和使用References(x => x.MasterItem)

+0

我没有对键的引用,记得这是一个SQL视图。 – francois

+0

我需要告诉MasterItemID映射回tabel MasterItem的映射。 – francois

0

看起来你需要定期many-to-one

public ItemUOMMapping() 
{ 
    Table("View_ItemUOM"); 
    Id(x => x.ID); 
    Map(x => x.Code); 
    Map(x => x.ItemAlias); 
    Map(x => x.UOM); 
    Map(x => x.PackSize); 
    References(x => x.MasterItem) 
     .Column("MasterItemID"); 
} 

而且MasterItem应该有自己的地图,你指定其所有属性。

+0

我收到一个无效的列名'MasterItemID'。如果我采取SQL查询并在SQL中执行它,它的作品。 – francois