2015-07-20 50 views
0

我有一个旧的表结构如下:NHibernate的马平大师 - >详细类都是从同一个表

UserId GUID 
SelectionId GUID 
DateSelected DATETIME 

它会很容易把它映射到一个类,但我想它映射到两个类,因为我总是排队这个表由UserId

public class User 
{ 
    Guid UserId {get;set;} 
    IEnumerable<UserSelection> UserSelection {get;set;} 
} 

public class UserSelection 
{ 
    public Guid SelectionId { get; set;} 
    public DateTime DateSelected { get; set;} 
} 

我这可能在NHibernate?

感谢

+0

是在SelectionId也有外键,其他一些表?你有其他表格已经映射到一个类了吗? –

+0

不,该表只是从csv文件填充 – groovejet

回答

0

我没有试过,但你可以使用子选择feature使用映射到一个查询,将是这样的:

public class UserMap : ClassMap<User> 
{ 
    public UserMap() 
    { 
     Subselect("SELECT DISTINCT UserId FROM OldTable"); 

     ReadOnly(); 

     Id(x => x.UserId); 

     HasMany(x => x.UserSelection).Table("OldTable").KeyColumn("UserId"); 
    } 
} 

public class UserSelectionMap : ClassMap<UserSelection> 
{ 
    public UserSelectionMap() 
    { 
     Table("OldTable"); 

     Id(x => x.SelectionId); 

     Map(x => x.DateSelected); 

     References(x => x.User).Column("UserId").Not.Nullable(); 
    } 
}