如何使用 NHibernate 在 CompositeId 映射中设置列
Posted
技术标签:
【中文标题】如何使用 NHibernate 在 CompositeId 映射中设置列【英文标题】:How can i set a Column in a CompositeId mapping with NHibernate 【发布时间】:2015-05-07 04:15:14 【问题描述】:我有一个带有 NHibernate 的 Composite Id 映射,我想在所有这些 Id 中设置一列。有可能吗?
public class MapProduction : ClassMap<Production>
public MapProduction()
CompositeId()
.KeyProperty(c => c.ProductionCode)
.KeyProperty(c => c.Cycle)
.KeyProperty(c => c.Crop)
.KeyProperty(c => c.TechnologyLevel);
Map(c => c.Area).Column("A_ARE");
Map(c => c.Productivity).Column("P_ARE");
Map(c => c.syncStatus).ReadOnly();
如果我只有一个 id,我可以设置一个 Column,但使用复合我不能。
我该怎么做?
【问题讨论】:
【参考方案1】:我发现了如何做到这一点。 在 CompositeId 中有一个参数用于添加表引用。
public class MapProduction : ClassMap<Production>
public MapProduction()
CompositeId()
.KeyProperty(c => c.ProductionCode, "P_PRO")
.KeyProperty(c => c.Cycle, "C_CIC")
.KeyProperty(c => c.Crop, "C_CUL")
.KeyProperty(c => c.TechnologyLevel, "C_NVT");
Map(c => c.Area).Column("A_ARE");
Map(c => c.Productivity).Column("P_ARE");
Map(c => c.syncStatus).ReadOnly();
【讨论】:
以上是关于如何使用 NHibernate 在 CompositeId 映射中设置列的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 LINQ 在 NHibernate 3 中实现关键字搜索?
NHibernate - 如何使用 where 子句保存对象
如何使用 DISTINCT 在 NHibernate SQL 查询中进行分页