Nhibernate 如何将列(操作时间)添加到多对多关系表中?
我有一个表或域实体ChargOperation,它映射到表[ChargeOperation] 与自身有着多对多的关系。这就像客户债务的抵销或分配树(父母和1级子女) 表[Distributions]包含以下字段:Nhibernate 如何将列(操作时间)添加到多对多关系表中?,nhibernate,many-to-many,Nhibernate,Many To Many,我有一个表或域实体ChargOperation,它映射到表[ChargeOperation] 与自身有着多对多的关系。这就像客户债务的抵销或分配树(父母和1级子女) 表[Distributions]包含以下字段: 源ID 主观性的 SourceId是父ChargeOperation的id。id&subjectId是子项(IList DistributedEBT之一)。 没关系,直到我必须为表[Distributions]的分发和更改字段的每个操作添加一个时间,如下所示: public Cha
- 源ID
- 主观性的
SourceId是父ChargeOperation的id。id&subjectId是子项(IList DistributedEBT之一)。
没关系,直到我必须为表[Distributions]的分发和更改字段的每个操作添加一个时间,如下所示:
public ChargeOperationMap() { Table("ChargeOperations"); Id(x => x.Id).GeneratedBy.Identity(); Map(x => x.Amount).Not.Nullable().Column("Amount"); HasManyToMany(x => x.DistributedDebts).Table("Distributions]") .ParentKeyColumn("SourceId") .ChildKeyColumn("SubjectId") .Cascade.All(); }
- 源ID
- 主体
- 运行时间
我如何避免它,只需将操作时间写入[发行版]。(我是用视图阅读的,所以这不是阅读的问题)如果您使用的是SQL Server,您可以始终在
timeOfOperation
列中添加默认值GetDate()
然后,每当将多对多表插入到
timeOfOperation
列时,就会收到当前日期时间。既然您说此列是从视图中读取的,那么您根本不需要映射它。您肯定应该打破多对多关系,因为现在它不是真正的多对多关系。您的发行版现在是一个成熟的实体本身(甚至在概念上),所以只需让everbody更清楚就可以了。我不需要smth的系统时间。我需要节省我的手术时间
public ChargeOperationMap()
{
Table("ChargeOperations");
Id(x => x.Id).GeneratedBy.Identity();
Map(x => x.Amount).Not.Nullable().Column("Amount");
HasManyToMany(x => x.DistributedDebts).Table("Distributions]")
.ParentKeyColumn("SourceId")
.ChildKeyColumn("SubjectId")
.Cascade.All();
}