无法插入选择SCOPE_IDENTITY()流利的nhibernate一对多 [英] could not insert select SCOPE_IDENTITY() fluent nhibernate one to many

查看:125
本文介绍了无法插入选择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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆