.net 多对多映射中的父键列类型更改
我有一个联接表,其中原始表是数字类型,联接表键列是字符串类型。我试图避免不得不更改的遗留决策,以将工作范围的风险降至最低.net 多对多映射中的父键列类型更改,.net,nhibernate,fluent-nhibernate,mapping,many-to-many,.net,Nhibernate,Fluent Nhibernate,Mapping,Many To Many,我有一个联接表,其中原始表是数字类型,联接表键列是字符串类型。我试图避免不得不更改的遗留决策,以将工作范围的风险降至最低 HasManyToMany<Attachment>(x => x.Attachments) .Table("ObjectAttachments") .ParentKeyColumn("ObjectId") .ChildKeyColumn("AttachmentId") .Fetch.Select() .LazyLoad() .AsBa
HasManyToMany<Attachment>(x => x.Attachments)
.Table("ObjectAttachments")
.ParentKeyColumn("ObjectId")
.ChildKeyColumn("AttachmentId")
.Fetch.Select()
.LazyLoad()
.AsBag();
一种解决方案是向具有字符串id的表中添加一个额外的列,并使用公式将字符串id转换为正确的数字类型。 这将数据库的问题限制在数据库中,而不是让它渗入代码中
Table("Attachments");
Id(x => x.Id);
Map(x => x.Name);
Map(x => x.Description);
Map(x => x.MimeType);
Map(x => x.Size);
Map(x => x.Date);
Map(x => x.Content).LazyLoad();
Join("ObjectAttachments", join =>
{
join.KeyColumn("Id");
join.Map(x => x.ObjectId);
});