标签: linq-to-nhibernate

如何在linq-to-Nhibernate中使用多个条件的连接

我有两个类(Request&RequestDetail).我需要Linq To NHibernate通过join在两个类之间进行查询.

var q = SessionInstance.Query<Request>()
       .Where(x => x.State == "Init");

var q2 = SessionInstance.Query<RequestDetail>();
q2 = q2.Where(xx => xx.Purpose.Contains("Purpose Sample")); // This line has a error When execution ??`q.ToList()?`

q = q.Join(q2, request => request.Id, detail => detail.Id, (request, detail) => request);

return q.ToList();
Run Code Online (Sandbox Code Playgroud)

当我添加Where条件时q2,Result有一个运行时错误.异常消息是:Specified method is not supported.

堆栈跟踪 :

   at NHibernate.Hql.Ast.ANTLR.PolymorphicQuerySourceDetector.GetClassName(IASTNode querySource)
   at NHibernate.Hql.Ast.ANTLR.PolymorphicQuerySourceDetector.Process(IASTNode tree)
   at NHibernate.Hql.Ast.ANTLR.AstPolymorphicProcessor.Process()
   at NHibernate.Hql.Ast.ANTLR.ASTQueryTranslatorFactory.CreateQueryTranslators(IASTNode ast, String queryIdentifier, String collectionRole, Boolean shallow, IDictionary`2 filters, ISessionFactoryImplementor …
Run Code Online (Sandbox Code Playgroud)

c# linq nhibernate join linq-to-nhibernate

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

奇怪的linq到nhibernate问题,来自'System.Int32'的无效转换

调用以下代码中的Get工作正常:

public class ContractService : IContractService
{
    private readonly IRepository<Contract> repository;

    public ContractService(IRepository<Contract> repository)
    {
        this.repository = repository;
    }

    public Contract Get(int contractId)
    {
        return repository.Query().Where(x => x.Id == contractId).FirstOrDefault();
    }
Run Code Online (Sandbox Code Playgroud)

但是当我这样做时:

public class ContractService : CRUDService<Contract>, IContractService
{
    public ContractService(IRepository<Contract> repository) : base(repository)
    {
    }
}


public class CRUDService<TEntity> : ICRUDService<TEntity> where TEntity : IEntity
{
    protected readonly IRepository<TEntity> repository;

    public CRUDService(IRepository<TEntity> repository)
    {
        this.repository = repository;
    }

    public TEntity Get(int id)
    {
        var entities = this.repository.Query().Where(s => s.Id …
Run Code Online (Sandbox Code Playgroud)

nhibernate linq-to-nhibernate

12
推荐指数
1
解决办法
1879
查看次数

NHibernate.Linq和MultiCriteria

有人知道使用NHibernate.Linq批量NHibernate查询的方法,就像你可以使用MultiCriteria和ICriteria对象一样吗?

使用MultiCriteria,我可以创建这样的东西:

var crit = session.CreateMultiCriteria()
                  .Add(session.CreateCriteria(typeof(Entity1)).Add(Restrictions.Eq("Property1","Value"))
                  .Add(session.CreateCriteria(typeof(Entity2)).Add(Restrictions.Eq("Property2","Value2"));               

var result = crit.List();
var list1 = (IList)result[0];
var list2 = (IList)result[1];
Run Code Online (Sandbox Code Playgroud)

如果我用Linq调用替换CreateCriteria调用并获得如下内容将会很好:

var crit = session.CreateMultiCriteria()
                .Add(session.Linq<Entity1>().Where(x => x.Property1 == "Value1")
                .Add(session.Linq<Entity2>().Where(x => x.Property2 == "Value2");

var result = crit.List();
var list1 = (IList<Entity1>)result[0];
var list2 = (IList<Entity2>)result[1];
Run Code Online (Sandbox Code Playgroud)

我们在大多数其他查询中使用Linq API,当我们需要运行MultiCriteria查询时,使用相同的Linq语法会很好.

谢谢.

linq nhibernate linq-to-nhibernate

12
推荐指数
1
解决办法
5926
查看次数

Linq对NHibernate:它成熟了吗?

我正在考虑在即将到来的项目中使用Linq到NHibernate,所以我想要一些关于它的反馈.我在2月份发现了这个相同的问题,看来Linq对NHibernate目前还不是很成熟......从那以后它有所改善吗?有没有人在现实生活中使用它?

感谢您的反馈意见

PS:请不要关闭重复:现有问题差不多1岁,我问的是产品的当前状态......

linq nhibernate linq-to-nhibernate

12
推荐指数
0
解决办法
1995
查看次数

C#中延迟执行和延迟评估之间的差异

能不能让我知道C#中延迟执行和延迟评估之间的确切差异是什么?这两个是同义词使用的.可以用一个例子解释一下这个区别吗?

c# linq-to-nhibernate

12
推荐指数
1
解决办法
4762
查看次数

流利的nhibernate不支持异常newexpression

任何人都可以帮我弄清楚我做错了什么.我是nhibernate的新手,我发现很难真正适应它.我有这个问题:

        var results2 = (from purchase in _session.Query<Purchase>()
                        group purchase by new { purchase.symbol } into purchases
                        select new Quote()
                        {
                            shares= purchases.Sum(p => p.shares)
                        }).ToList();
Run Code Online (Sandbox Code Playgroud)

但我得到notsupportedexception并且错误消息只是newexpression.

nhibernate linq-to-nhibernate

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

NHibernate.Linq - 它的效果如何?

我们正在使用NHibernate开始一个新项目,并考虑使用NHibernate.Linq(3.0中的嵌入式版本,而不是contrib项目).我知道这是一个相对较新的补充.有没有人使用当前的LINQ for NHibernate?它对于真实世界的应用程序是否足够成熟?

具体而言,您是否遇到过困难,性能如何,是否存在导致您出现问题的支持方面的任何重大差距?

谢谢!

linq nhibernate linq-to-nhibernate

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

linq到NHibernate中的Max为数据库中不存在的数据

我有一个linq对NHibernate的查询.

var q = SessionInstance.Query<Request>().Max(e => e.Code);
Run Code Online (Sandbox Code Playgroud)

如果Request表没有行,则执行此查询会引发GenericADOException并显示以下消息:

{"Could not execute query[SQL: SQL not available]"}

{"Value cannot be null.\r\nParameter name: item"}

我该怎么办?

c# linq nhibernate max linq-to-nhibernate

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

'string'不包含'Contains'的定义

我有这样的声明:

var vals =
    from StandAloneUserPayment saup in _Session.Query<StandAloneUserPayment>()
        .Fetch(x => x.RecurringPayments)
    where
        saup.User.UserId == userId
        && searchString.Contains(saup.FriendlyName, StringComparer.InvariantCultureIgnoreCase)
    select
        saup;
Run Code Online (Sandbox Code Playgroud)

这似乎正是我应该做的,但是我Contains用下面的消息下划线方法得到整行:

string不包含定义,Contains并且最好的扩展方法重载System.Linq.ParallelEnumerable.Contains<TSource>(System.Linq.ParallelQuery<TSource>, TSource, System.Collections.Generic.IEqualityComparer<TSource>)有一些无效的参数

我究竟做错了什么?

c# linq nhibernate linq-to-nhibernate

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

NHibernate使用错误的列类型进行LINQ包含查询(varchar to nvarchar)

我遇到了NHibernate 3.3.3针对SQL Server的问题,使用NVARCHAR作为参数来反对从LINQ表达式中的函数创建VARCHARLIKE查询的列string.Contains().我有Fluent映射告诉NHibernate该列是VARCHAR,并且基本的"=="比较确实使用了一个VARCHAR参数.

可能的答案在Lambda字符串中列为VARCHAR,但经过多次输入(无法复制/粘贴到我的开发环境中)后,我无法获得任何答案.

这是一个存储VARCHAR列的表:

CREATE TABLE Names (
   Id   INT         NOT NULL IDENTITY (1, 1) PRIMARY KEY,
   Name VARCHAR(20) NOT NULL
);
Run Code Online (Sandbox Code Playgroud)

以下是一些代码snipets来说明正在发生的事情:

public class Names
{
   public virtual int Id { get; set; }
   public virtual string Name { get; set; }
}

public class NamesMap : ClassMap<Names>
{
   Table("Names");
   Id(x => x.Id).Column("Id").GeneratedBy.Identity();
   Map(x => x.Name).Column("Name").CustomType("AnsiString");
}

// _namesRepository is an IQueryable …
Run Code Online (Sandbox Code Playgroud)

c# linq sql-server nhibernate linq-to-nhibernate

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

标签 统计

linq-to-nhibernate ×10

nhibernate ×9

linq ×7

c# ×5

join ×1

max ×1

sql-server ×1