标签: icriteria

NHibernate - CreateCriteria与CreateAlias

假设以下情形:

class Project{
   public Job Job;
}

class Job{
   public Name;
}
Run Code Online (Sandbox Code Playgroud)

假设我想使用Criteria API来搜索Job的名称为"sumthing"的所有项目.

我可以使用CreateAlias为Job创建别名并使用它来访问Name,或者我可以为属性Job创建一个新Criteria并按Name搜索.

表现明智,有什么区别吗?

nhibernate performance criteria icriteria

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

使用property-ref映射到非键字段时,延迟加载不适用于多对一关系

我有一个遗留数据库,我使用NHibernate进行映射.关注的对象是帐户和通知对象列表.对象看起来像:

public class Notification
{
    public virtual int Id { get; set; }
    public virtual DateTime BatchDate { get; set; }
    /* other properties */

    public virtual Account Account { get; set; }
}

public class Account 
{
    public virtual int Id { get; set; }
    public virtual string AccountNumber { get; set; }
    /* other properties */ 
}
Run Code Online (Sandbox Code Playgroud)

映射文件如下所示:

<class name="Account" table="Account" dynamic-update="true">
<id name="Id" column="AccountID">
    <generator class="native" />
</id>
<property name="AccountNumber" length="15" not-null="true" />
    <!-- other properties --> …
Run Code Online (Sandbox Code Playgroud)

nhibernate lazy-loading icriteria

17
推荐指数
1
解决办法
8191
查看次数

NHibernate HQL vs CriteriaAPI vs QueryOver vs Linq.性能

hql和criteriaApi和QueryOver之间的性能差异是什么?是否存在一个比另一个更快或更慢的情况?

编辑:我用QueryOver和Linq扩展了问题.

=============================================

好吧,我不确定哪个回复标记为答案所以我将标记最多VoteUp的帖子.我不知道.这实际上是一个问题,而不是一个问题.

nhibernate performance criteria icriteria

15
推荐指数
3
解决办法
8853
查看次数

如何使用NHibernate Criteria API获取"top n"?

如何使用NHibernate Criteria API获取"top n"?理想情况下,我想使用分离标准.

c# nhibernate criteria icriteria

14
推荐指数
1
解决办法
8291
查看次数

NHibernate如何查询IList <string>属性?

我试图使用NHibernate查询我的一个域类上的IList <string>属性.这是一个简单的例子来演示:

public class Demo
{
    public Demo()
    {
        this.Tags = new List<string>();
    }
    public virtual int Id { get; set; }
    public virtual string Name { get; set; }
    public virtual IList<string> Tags { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

映射如下:

<class name="Demo">
<id name="Id" />
<property name="Name" />
<bag name="Tags">
  <key column="DemoId"/>
  <element column="Tag" type="String" />
</bag>
Run Code Online (Sandbox Code Playgroud)

我能够保存和检索就好了.现在查询我的域类的实例,其中Tags属性包含指定的值:

var demos = this.session.CreateCriteria<Demo>()
            .CreateAlias("Tags", "t")
            .Add(Restrictions.Eq("t", "a"))
            .List<Demo>();
Run Code Online (Sandbox Code Playgroud)

导致错误:收集不是关联:Demo.Tags

var demos = (from d in this.session.Linq<Demo>()
                     where d.Tags.Contains("a")
                     select d).ToList();
Run Code Online (Sandbox Code Playgroud)

导致错误:Objct引用未设置为对象的实例. …

c# linq nhibernate hql icriteria

10
推荐指数
1
解决办法
6142
查看次数

Nhibernate标准:'select max(id)......'

我可以使用Criteria执行t-sql命令来选择表中列的最大值吗?

'从客户中选择@cus_id = max(id)+ 1'

奥利

t-sql nhibernate icriteria

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

DetachedCriteria和ICriteria之间有什么区别

这些类有一些类似的方法,但似乎工作略有不同.

它们之间的区别是什么?我应该何时使用它们?

nhibernate icriteria detachedcriteria

9
推荐指数
1
解决办法
5019
查看次数

如何在Expression.Or中设置多于2个表达式

我想创建一个超过3-4 Expression.Or的查询?但Expression.Or只是让我在其中添加两个表达式.

if (!string.IsNullOrEmpty(keyword))
                query
                    .Add(Expression.Or(
                             Expression.Like("Name", keyword, MatchMode.Anywhere),
                             Expression.Like("LastName", keyword, MatchMode.Anywhere)))
                    .Add(Expression.Or(
                             Expression.Like("Email1", keyword, MatchMode.Anywhere),
                             Expression.Like("Email2", keyword, MatchMode.Anywhere)));
Run Code Online (Sandbox Code Playgroud)

上面的代码生成"名称像%this this或LastName like%this%AND Email1 like%this%和Email2 like%this.

提前致谢.

nhibernate expression criteria icriteria

8
推荐指数
1
解决办法
5574
查看次数

NHibernate - 使用ICriteria实现"NOT IN"查询

我已经开始接触NHibernate了.我正在尝试执行一个查询,从表中选择所有记录,但有一个排除过滤器ID列表,例如.给我所有产品,除了这些具有这些ID值的产品.

通常在直接T-SQL中,我会将要排除的ID传递给NOT IN子句,就像这样.

SELECT *
FROM Products
WHERE ProductId NOT IN (1,5,9,23,45)
Run Code Online (Sandbox Code Playgroud)

我如何使用ICriteria或HQL(但最好是ICriteria)在NHibernate中执行此操作?

nhibernate icriteria

8
推荐指数
1
解决办法
6298
查看次数

NHibernate跨多个表查询

我正在使用NHibernate,并试图找出如何编写查询,搜索我的实体的所有名称,并列出结果.举个简单的例子,我有以下几个对象;

public class Cat {
public string name {get; set;}
}

public class Dog {
    public string name {get; set;}
}

public class Owner {
    public string firstname {get; set;}
    public string lastname {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

事实上,我想创建一个查询,比如说,并且返回所有宠物主人,其名称包含"ted",OR宠物的名称包含"ted".

这是我想要执行的SQL的示例:

SELECT TOP 10 d.*, c.*, o.* FROM owners AS o
INNER JOIN dogs AS d ON o.id = d.ownerId 
INNER JOIN cats AS c ON o.id = c.ownerId
WHERE o.lastname like '%ted%' 
OR o.firstname like '%ted%' 
OR c.name like '%ted%' 
OR d.name …
Run Code Online (Sandbox Code Playgroud)

sql nhibernate hql icriteria

8
推荐指数
1
解决办法
5717
查看次数