问题标签 [linq-to-nhibernate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3311 浏览

linq - Linq to objects 错误:索引超出范围。必须是非负数且小于集合的大小。参数名称:索引

尝试从 linq 查询返回新对象列表时出现以下错误。我希望返回一个精简的实体以在选择框中使用,并且只需要 id 和名称。

指数超出范围。必须是非负数且小于集合的大小。参数名称:索引

不知道我哪里出错了。

任何提示表示赞赏。

0 投票
2 回答
1339 浏览

linq - LINQ to NHibernate 和字符串比较的奇怪问题

我正在使用 LINQ to NHibernate 并在比较字符串时遇到了一个奇怪的问题。以下代码工作正常,但是当我取消注释时: //MyCompareFunc(dl.DamageNumber, damageNumberSearch) && 和评论:dl.DamageNumber.Contains(damageNumberSearch) && 然后它崩溃了,似乎 MyCompareFunc() 在 dl 时总是返回 true。 DamageNumber.Contains(damageNumberSearch) 有时返回 true,有时返回 false。

换句话说,当我在 LINQ 查询中直接使用 string.Contains() 时,它可以工作,但是当我将它移到一个方法时,它就不起作用了。

0 投票
1 回答
160 浏览

linq - 是否有必要不在 LINQ 查询中使用方法?

在下面的代码中,当我将“dl.DamageCount > 5”直接放在查询中或将“dl.DamageCount > 5”移动到方法或函数然后从查询中调用它时,有什么区别?

似乎当我将其移入方法时,查询无法正常工作。事实上,无论条件评估如何,函数/方法似乎总是返回 true。我正在使用 Linq-to-NHibernate。

0 投票
3 回答
960 浏览

c# - 为什么评估布尔表达式的普通定律不适合 LINQ?

在这样的代码中:

其中insuranceNumberSearch为空,在以下代码中剩余的表达式不为空:

无论 insuranceNumberSearch 是 null 还是不为 null,都会评估表达式的所有部分。

我正在使用 LINQ to NHibernate

更新:

不幸的是,我把第一个片段弄错了。正确的是:

或者

在上述两个 when insuranceNumberSearchis 中null,剩余的表达式不再被评估。如果这样的行为不存在,insuranceNumberSearch.Trim()将导致引用对象为空异常。可悲的是 LINQ(或者可能是 LINQ-to-NHibernate)不遵守如此好的行为并评估所有表达式,即使insuranceNumberSearchnull并且导致错误。

更新2:我发现了一个类似的问题:|| (或)使用 C# 的 Linq 中的运算符

0 投票
1 回答
819 浏览

c# - 短路评估和 LINQ-to-NHibernate

似乎 LINQ-to-NHibernate 和 LINQ-to-SQL 不支持where查询子句中的短路评估。

我对吗?有什么解决方法吗?可以将它添加到 LINQ-to-NHibernate 和 LINQ-to-SQL 的下一个版本中吗?

有关更多信息,请参阅以下内容:

|| (或)使用 C# 的 Linq 中的运算符

为什么评估布尔表达式的普通法则不适合 LINQ?

0 投票
3 回答
220 浏览

nhibernate - linq2nh 准备好投入生产了吗?

以前有人问过,但那是一年前的事了。我想知道它现在是否可以投入生产?

0 投票
1 回答
3120 浏览

c# - NHibernate Subquery Linq - 如何通过 id 选择包含某个项目的组

短版 此查询在数据库中有效,但在 Linq To NHibernate 中失败。为什么?

详细长版

我有两个由 NHibernate Automapper 映射的具有 ManyToMany 关系的对象。

我想获取所有包含某个 DataInfo 的 DataGroup。

此查询在 SQLite 管理员中有效,因此我认为我的数据库已正确设置:

我是一个以这两种方式公开 Linq 的存储库

我使用这样的存储库

当 Linq 尝试执行上面的任何一种方法时,我都会收到以下错误:

NHibernate.QueryException 未被用户代码处理
Message="could not resolve property: data.Id of: MapLarge.Public.Data.DataGroupInfo"
Source="NHibernate" StackTrace: at NHibernate.Persister.Entity.AbstractPropertyMapping.GetColumns(String propertyName)

我究竟做错了什么?

- - 更新 - - -

这种解决方法给出了预期的结果,但它是一种蛮力方法,将每个数据组拉入内存,然后使用 c# 而不是数据库过滤对象。但至少它将我的问题缩小到 NHibernate 特定问题。

如果有人在那里,我仍然非常喜欢答案:-)

0 投票
1 回答
720 浏览

nhibernate - 嵌套选择在 NHibernate.Linq 中不起作用

我想使用以下查询加载用户及其角色的列表:

但是这个查询不起作用。产生以下错误:“未实现方法'Select'。”

¿ 消息提示 NHibernate.Linq 不支持嵌套选择?我想知道这是确定的还是存在其他方式来做到这一点?

PD:请原谅我的英语不好。

0 投票
2 回答
1317 浏览

c# - ArgumentOutOfRangeException 在 LINQ to NHibernate 查询中使用 ToString

我有一个基本的 NHibernate.Linq 查询:

这工作正常。但是,ObjectType 是一个重量级的类,我只想要 ID 和 ClassName。所以我创建了一个名为EntityInfo

我想返回一个IEnumerable<EntityInfo>

但是,在尝试遍历返回的 IEnumerable 时,出现以下异常:

ToString()不是里面的select语句是不允许的?我已经通过运行原始查询来解决它,然后通过手动将匿名类型映射到EntityInfo实例来创建一个新的枚举,但我显然更喜欢以前的版本。

作为参考,我使用的是 NHibernate.Linq 1.0.0.4000、NHibernate 2.1.0.4000 和 FluentNHibernate 1.0.0.593。

0 投票
1 回答
369 浏览

nhibernate - Basic Fluent NHibernate 程序编译并运行,但没有任何内容保存到数据库或从数据库加载

我正在尝试一个非常简单的 Fluent Nhibernate 示例:带有一个表的 SQL 2005 数据库,VS2008 控制台应用程序。该表在程序开始前有一条记录。

我正在尝试添加一条记录,然后显示表中的所有记录。程序成功编译运行,没有任何异常,但是没有显示记录。也不会创建 HBM 映射文件。看起来程序完全忽略了数据库(尽管它连接到它)。

这是我的代码 - 我尽量保持最小:

实体:

映射:

程序本身: