【问题标题】:Delete on Many to Many Relationship using Fluent Nhibernatev使用 Fluent Nhibernatev 删除多对多关系
【发布时间】:2013-09-05 15:36:44
【问题描述】:

请帮帮我!我无法删除 Oid 和 CertRequest 表中的对象和依赖项。

我已经关注了:

老样子

公共类Oid { 公共虚拟 int Id { 获取;受保护的集合; }
公共虚拟 int RowVersion { 获取;放; }
公共虚拟字符串代码 { 获取;放; } 公共虚拟字符串名称 { 获取;放; } }

public class OidMap : IAutoMappingOverride<Oid>
{
    public void Override(AutoMapping<Oid> mapping)
    {
        mapping.Map(c => c.Code).Not.Nullable().Unique();
        mapping.Map(c => c.Name).Not.Nullable().Length2000();
    }
}

证书请求

public class CertRequest
{
    public virtual int Id { get; protected set; }  
    public virtual int RowVersion { get; set; }      
    public virtual string LastName { get; set; }
    public virtual string FirstName { get; set; }
    public virtual string MiddleName { get; set; }
    public virtual ICollection<Oid> Oids { get; set; }
}

public class CertRequestMap : IAutoMappingOverride<CertRequest>
{
    public void Override(AutoMapping<CertRequest> mapping)
    {
        mapping.Map(c => c.LastName).Nullable().Length2000();
        mapping.Map(c => c.FirstName).Nullable().Length2000();
        mapping.Map(c => c.MiddleName).Nullable().Length2000();
        mapping.HasManyToMany(c => c.Oids)
            .Table("CertRequestToOid")
            .ParentKeyColumn("CertRequestId")
            .ChildKeyColumn("OidId");
    }
}

删除代码:

certRequest.Oids.Clear();

_certRequestRepository.SaveOrUpdate(certRequest);

_certRequestRepository.Delete(certRequest);

什么都不做。

任何提示...

更新

对不起,我没有说我在方法上使用了 Sharp-Architecture 和 Transaction 属性。

【问题讨论】:

  • 我帮助在一个事务中完成所有操作!谢谢!

标签: c# nhibernate fluent-nhibernate fluent sharp-architecture


【解决方案1】:

_certRequestRepositoryISession 类型的对象吗?

如果是这样,您必须调用 _certRequestRepository.Flush() 将删除提交到数据库。

更好的是,使用事务。

using(var transaction = _certRequestRepository.BeginTransaction())
{
    certRequest.Oids.Clear();
    certRequestRepository.Delete(certRequest);
    transaction.Commit();
}

【讨论】:

  • 对不起,我没有说我使用 Sharp-Architecture 和方法上的 Transaction 属性。
猜你喜欢
  • 2013-04-05
  • 2011-03-16
  • 1970-01-01
  • 1970-01-01
  • 2014-12-03
  • 1970-01-01
  • 2011-01-15
  • 2015-08-22
  • 1970-01-01
相关资源
最近更新 更多