小编Mic*_*ick的帖子

手动设置ID

我有一个Users表,其中"ID"字段是GUID字段.

使用ASPNET我正在创建一个用户帐户并获取GUID.我正在尝试使用该GUID作为主ID在我的表中创建关联记录.

我遇到的问题是,当我手动设置Users.ID时,NHibernate尝试进行更新,而不是插入.我用NHibernate Profiler看到这个,然后用"意外行数:0;预期:1"进行轰炸.

用户的用户界面用户看起来像:

public class UsersMap : ClassMap<Users>
{
    public UsersMap()
    {
        Id(x => x.ID, "ID"); //GUID

        Map(x => x.Name, "Name"); //string
        Map(x => x.PhoneNumber, "PhoneNumber"); //string
        Map(x => x.FaxNumber, "FaxNumber"); //string
        Map(x => x.EmailAddress, "EmailAddress"); //string

        HasMany<UsersAddressBook>(x => x.usersAddressBook).KeyColumn("ID");
    }
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?提前致谢.

nhibernate-mapping fluent-nhibernate

7
推荐指数
1
解决办法
3417
查看次数

如何在Fluent NHibernate中关闭锁定?

当我将数据导入大型表时,我遇到了问题,整个网站都会关闭,直到导入完成.插入/更新过程最多可能需要3个小时才能完成.此外,如果由于某种原因抛出异常,表将无限期地保持锁定状态,直到重新启动应用程序池.

我调查了发生的事情.显然,触摸的表将被锁定,直到此过程完成.如果这是直接的SQL查询,我会在查询中添加"with(NOLOCK)"来解决问题.但是,我无法弄清楚如何告诉Fluent NHibernate将其添加到它生成的查询中.

另外,有没有一种方法可以构建会话工厂,我可以将其设置为默认情况下将"with(NOLOCK)"打开到所有查询中?

提前致谢.

nhibernate fluent-nhibernate

4
推荐指数
1
解决办法
3186
查看次数