无法插入选择SCOPE_IDENTITY()流利的nhibernate一对多 [英] could not insert select SCOPE_IDENTITY() fluent nhibernate one to many
本文介绍了无法插入选择SCOPE_IDENTITY()流利的nhibernate一对多的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个错误异常:无法插入选择SCOPE_IDENTITY()。经过几个小时的搜索,我发现我的映射文件中有一个错误。我尝试了所有可能的解决方案,但错误不断出现。
我的映射文件:
public sealed class EmployeeMap:ClassMap< Employee>
{
public EmployeeMap()
{
表(dbo.Employee);
Id(x => x.Id).Column(EmployeeId);
Map(x => x.Name);
Map(x => x.Job);
HasMany(x => x.Phones).KeyColumn(EmployeeId)。Table(dbo.Phone)
.Inverse()
.Cascade.All();
}
}
公共密封类PhoneMap:ClassMap< Phone>
{
public PhoneMap()
{
Table(dbo.Phone);
Id(x => x.Id).Column(PhoneId);
Map(x => x.PhoneNumber);
Map(x => x.PhoneType);
Map(x => x.EmployeeId);
References(x => x.Employee).Column(EmployeeId)。Not.Nullable();
Session.SaveOrUpdate()
我哪里错了?
解决方案看来,没有机构回答我的问题...
没有需要。我自己找到答案:
public sealed class EmployeeMap:ClassMap< Employee>
{
public EmployeeMap()
{
表(dbo.Employee);
Id(x => x.Id).Column(EmployeeId);
Map(x => x.Name);
Map(x => x.Job);
HasMany(x => x.Phones).KeyColumn(EmployeeId)。Table(dbo.Phone)。Inverse()。Cascade.AllDeleteOrphan();
}
}
公共密封类PhoneMap:ClassMap< Phone>
{
public PhoneMap()
{
Table(dbo.Phone);
Id(x => x.Id).Column(PhoneId);
Map(x => x.PhoneNumber);
Map(x => x.PhoneType);
Map(x => x.EmployeeId);
引用(x => x.Employee,EmployeeId);
}
}
I have an error exception: "could not insert select SCOPE_IDENTITY()". After certain hours of googling, I found that I have a mistake in my Mapping files. I tried all the possible solutions, but the error keeps appearing.
My mapping files:
public sealed class EmployeeMap : ClassMap<Employee>
{
public EmployeeMap()
{
Table("dbo.Employee");
Id(x => x.Id).Column("EmployeeId");
Map(x => x.Name);
Map(x => x.Job);
HasMany(x => x.Phones).KeyColumn("EmployeeId").Table("dbo.Phone")
.Inverse()
.Cascade.All();
}
}
public sealed class PhoneMap : ClassMap<Phone>
{
public PhoneMap()
{
Table("dbo.Phone");
Id(x => x.Id).Column("PhoneId");
Map(x => x.PhoneNumber);
Map(x => x.PhoneType);
Map(x => x.EmployeeId);
References(x => x.Employee).Column("EmployeeId").Not.Nullable();
}
}
The problem occurs in Session.SaveOrUpdate().
Where did I wrong?
解决方案 It seems that no body answered to my question...
No need. I found the answer by myself:
public sealed class EmployeeMap : ClassMap<Employee>
{
public EmployeeMap()
{
Table("dbo.Employee");
Id(x => x.Id).Column("EmployeeId");
Map(x => x.Name);
Map(x => x.Job);
HasMany(x => x.Phones).KeyColumn("EmployeeId").Table("dbo.Phone").Inverse().Cascade.AllDeleteOrphan();
}
}
public sealed class PhoneMap : ClassMap<Phone>
{
public PhoneMap()
{
Table("dbo.Phone");
Id(x => x.Id).Column("PhoneId");
Map(x => x.PhoneNumber);
Map(x => x.PhoneType);
Map(x => x.EmployeeId);
References(x => x.Employee, "EmployeeId");
}
}
这篇关于无法插入选择SCOPE_IDENTITY()流利的nhibernate一对多的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文