Bra*_*ell 8 architecture nhibernate fluent-nhibernate
我正在使用Fluent NHibernate,我有两个表:
BusinessPlan [Id, Year, CustomerCode]
PreviousYearData [Id, Year, CustomerCode, MoreFieldsForData]
Run Code Online (Sandbox Code Playgroud)
在我的域中,我想将PreviousYearData加入BusinessPlan,使实体成为这样的:
public class BusinessPlan {
public Guid Id { get; set; }
public int Year { get; set; }
public string CustomerCode { get; set; }
public PreviousYearData PreviousYearData {get; set;}
}
public class PreviousYearData {
public Guid Id { get; set; }
public int Year { get; set; }
public string CustomerCode { get; set; }
// many more fields
}
Run Code Online (Sandbox Code Playgroud)
PreviousYearData表中的数据在创建BusinessPlans之前的年初预先填充,因此我不知道BusinessPlan的Id将是什么,并且无法创建正常的外键.我想我想要做的是根据Year和CustomerCode这两个列将PreviousYearData加入BusinessPlan.这可能与Fluent NHibernate一起使用吗?还有另一种方法可以解决这个问题吗?
我想这个或类似的应该适合你:
HasMany(x => x.PreviousYearDatas )
.Access.AsCamelCaseField(Prefix.Underscore)
.WithKeyColumns("YEAR", "CUSTOMER_CODE")
.LazyLoad();
Run Code Online (Sandbox Code Playgroud)
你会有收藏,但你一定能得到你想要的。
另外还有另一种构造:
HasMany(
// some mapping but includes one foreign key - say customer code
.Where( "YEAR = 2010" )
Run Code Online (Sandbox Code Playgroud)
也许这就是最好的选择。我不认为岁月会经常改变:)
归档时间: |
|
查看次数: |
1137 次 |
最近记录: |