相关疑难解决方法(0)

NHibernate Definitive Cascade应用指南

是否有任何互联网资源对NHibernate的所有级联设置有明确的指导,其中包括类结构,HBM的示例以及与NH的所有关系的每个级联设置的动作的含义.

如果有以最正确的方式进行公共关联的示例,例如设置状态表,您将永远不会最终级联删除状态,或者删除具有CreatedBy用户属性的对象,那么它将会很有用.永远不会在级联等中删除用户

c# nhibernate cascade

25
推荐指数
1
解决办法
2万
查看次数

理解外键not-null = true和反向行为与NHibernate的零对一关系

我正在尝试让NHibernate使用集合的许多方面来管理双向关联以建立零对一关系.

父类和地图:

public class Parent
{
    private ICollection<Child> children;
    public Parent()
    {
        this.children = new HashedSet<Child>();
    }
    public virtual Guid Id { get; protected internal set; }
    public virtual Child Child
    {
        get { return children.FirstOrDefault(); }
        set
        {
            {
                this.children.Clear();
                if (value != null)
                {
                    this.children.Add(value);
                }
            }
        }
    }
}

public class ParentMap : ClassMap<Parent>
{
    public ParentMap()
    {
        this.Id(x => x.Id)
            .GeneratedBy.GuidComb();
        this.HasMany<Child>(Reveal.Member<Parent>("children"))
            .Access.Field()
            .Cascade.All()
            .Not.Inverse()
            .AsSet();
    }
}
Run Code Online (Sandbox Code Playgroud)

儿童班和地图:

public class Child
{
    public virtual Guid …
Run Code Online (Sandbox Code Playgroud)

nhibernate nhibernate-mapping

11
推荐指数
1
解决办法
3263
查看次数

NHibernate高效删除使用LINQ Where条件

有这样的LINQ查询的NHibernate存储库

var q = from x in SomeIQueryable<SomeEntity> where x.A1 == a1 && x.B1 == b1 select x;
Run Code Online (Sandbox Code Playgroud)

有没有一个解决方案如何获得这个WHERE过滤器并将其应用于"一次性删除",这似乎只能通过HQL实现:

var cmd = string.Format("delete from SomeEntity where x.A1 = '{0}' and x.B1 = {1}", a1, b1);
session.CreateQuery(cmd).ExecuteUpdate();
Run Code Online (Sandbox Code Playgroud)

c# linq nhibernate

11
推荐指数
2
解决办法
3621
查看次数

流畅的NHibernate多对一映射

我是Hibernate世界的新手.这可能是一个愚蠢的问题,但我无法解决它.我正在测试表的多个到一个关系并试图插入记录.我有一个Department表和Employee表.员工和部门在这里有多对一的关系.我正在使用Fluent NHibernate添加记录.以下所有代码.请帮忙

SQL代码

create table Dept (
    Id int primary key identity,
    DeptName varchar(20),
    DeptLocation varchar(20)
);

create table Employee (
    Id int primary key identity,
    EmpName varchar(20),
    EmpAge int,
    DeptId int references Dept(Id)
);
Run Code Online (Sandbox Code Playgroud)

类文件

public partial class Dept
{
    public virtual System.String DeptLocation { get; set; }
    public virtual System.String DeptName { get; set; }
    public virtual System.Int32 Id { get; private  set; }
    public virtual IList<Employee> Employees { get; set; }
}

public partial class Employee
{ …
Run Code Online (Sandbox Code Playgroud)

nhibernate fluent nhibernate-mapping

6
推荐指数
1
解决办法
3万
查看次数

流利的nHibernate:一对多的关系问题

我有一对多关系的问题.我有以下域类:

public class Installation : Entity<Installation>
{        
    public virtual string Name { get; set; }
    public virtual IList<Institution> Institutions { get; set; }

    public Installation()
    {
        Institutions = new List<Institution>();
    }
}
public class Institution : Entity
{
    public virtual string Name { get; set; }
    public virtual string Address { get; set; }
    public virtual string City { get; set; }
    public virtual Installation Installation { get; set; }        
}
Run Code Online (Sandbox Code Playgroud)

我根据以下帖子制作了Entity基类.我定义了以下映射:

public class InstitutionMapping : ClassMap<Institution> 
{ …
Run Code Online (Sandbox Code Playgroud)

c# nhibernate one-to-many fluent-nhibernate

3
推荐指数
1
解决办法
6977
查看次数

Nhibernate有很多插入生成额外的更新(没有反向)

我有一个Parent类,有两个Child类列表

    public class Parent
    {
        ...

        public virtual ICollection<Foo> Foo{ get; set; }

        public virtual ICollection<Bae> Bar{ get; set; }
    }

    public class Foo
    {
        ...

        public virtual Parent Parent{ get; set; }
    }

    public class Bar
    {
        ...

        public virtual Parent Parent{ get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

映射是

        public ParentMap()
        {
            ...

            HasMany(m => m.Foo).AsSet().Cascade.All();
            HasMany(m => m.Bar).AsSet().Cascade.All();
        }

        public FooMap()
        {
            ...

            References(m => m.Parent);
        }

        public BarMap()
        {
            ...

            References(m => m.Parent);
        }
Run Code Online (Sandbox Code Playgroud)

每当我保存父对象时,我得到

INSERT Parent ...
INSERT …
Run Code Online (Sandbox Code Playgroud)

nhibernate nhibernate-mapping fluent-nhibernate fluent-nhibernate-mapping

2
推荐指数
1
解决办法
1974
查看次数