NHibernate-没有的持久化器:System.Guid
本文关键字:System Guid 持久化 NHibernate- | 更新日期: 2023-09-27 18:22:01
这个问题似乎比通常的映射问题更有趣。
我有一个方法可以用NHibernate执行删除,但我遇到了一些明显简单的问题。我已经研究了可能与此相关的各种其他类似问题,但几个小时后我就挂断了
我有这样的方法:
public void DeleteOrganization(Guid actorId)
{
using (var session = _nhibernate.OpenSession())
{
ITransaction transaction = session.BeginTransaction();
try
{
session.Delete(actorId);
transaction.Commit();
}
catch (Exception)
{
transaction.Rollback();
throw;
}
}
}
这个HBM地图:
<class name="Actor, Domain.Entities" table="Actor" lazy="false">
<id name="ActorId" column="ActorId" type="Guid" unsaved-value="00000000-0000-0000-0000-000000000000">
<generator class="guid" />
</id>
我似乎仍然被困在这里。关键是它挂在了Guid上。有什么想法吗?
这里的问题是我映射了一个Organization对象,并试图删除id(而不是记录本身)。在我以前的代码中,我应该尝试删除Organization对象。正确的代码如下:
public void DeleteOrganization(Guid actorId)
{
using (var session = _nhibernate.OpenSession())
{
ITransaction transaction = session.BeginTransaction();
try
{
var Organization = (from p in session.Query<Organization>()
where p.ActorId == actorId
orderby p
select p).First();
session.Delete(Organization);
transaction.Commit();
}
catch (Exception)
{
transaction.Rollback();
throw;
}
}
}