相关疑难解决方法(0)

NHibernate3查询与QueryOver

我注意到有两种方法可以创建对nhibernate的友好的通用友好访问.

IQueryOver<T, T> query= session.QueryOver<T>().Where(criteria);
Run Code Online (Sandbox Code Playgroud)

IQueryable<T> query= session.Query<T>().Where(criteria);
Run Code Online (Sandbox Code Playgroud)

每个接口的实现.

IQueryOver<TRoot, TSubType> : IQueryOver<TRoot>, IQueryOver
Run Code Online (Sandbox Code Playgroud)

IQueryable<out T> : IEnumerable<T>, IQueryable, IEnumerable
Run Code Online (Sandbox Code Playgroud)

IQueryable实现IEnumerable,因此支持您期望的所有LINQ友好的东西.我正在倾向于这个实现,但是想知道是否有人知道QueryOver的目的是什么,你无法用Query完成?

c# nhibernate orm

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

Linq to nhibernate - 其中collection包含带id的对象

我有2个像这样的对象

public class Child
{
    public virtual int ChildId { get; set; }
}

public class Parent
{
    public virtual int ParentId { get; set; }

    public virtual IList<Child> Children { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我试图写一个linq到nhibernate查询来选择一个父类,其中包含一个具有特定id的子.return x => x.Children.Contains不起作用.我也尝试过这个.

return x => (from y in x.Children where y.ChildId.Equals(childId) select y).Count() > 0
Run Code Online (Sandbox Code Playgroud)

我的流畅映射看起来像这样

HasManyToMany<Child>(x => x.Children)
            .Table("ParentsChildren")
            .ParentKeyColumn("ParentId")
            .ChildKeyColumn("ChildId");
Run Code Online (Sandbox Code Playgroud)

如何通过id找到包含子项的父项?

c# linq nhibernate fluent-nhibernate linq-to-nhibernate

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