问题标签 [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.
linq - Linq to objects 错误:索引超出范围。必须是非负数且小于集合的大小。参数名称:索引
尝试从 linq 查询返回新对象列表时出现以下错误。我希望返回一个精简的实体以在选择框中使用,并且只需要 id 和名称。
指数超出范围。必须是非负数且小于集合的大小。参数名称:索引
不知道我哪里出错了。
任何提示表示赞赏。
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() 时,它可以工作,但是当我将它移到一个方法时,它就不起作用了。
linq - 是否有必要不在 LINQ 查询中使用方法?
在下面的代码中,当我将“dl.DamageCount > 5”直接放在查询中或将“dl.DamageCount > 5”移动到方法或函数然后从查询中调用它时,有什么区别?
似乎当我将其移入方法时,查询无法正常工作。事实上,无论条件评估如何,函数/方法似乎总是返回 true。我正在使用 Linq-to-NHibernate。
c# - 为什么评估布尔表达式的普通定律不适合 LINQ?
在这样的代码中:
其中insuranceNumberSearch
为空,在以下代码中剩余的表达式不为空:
无论 insuranceNumberSearch 是 null 还是不为 null,都会评估表达式的所有部分。
我正在使用 LINQ to NHibernate
更新:
不幸的是,我把第一个片段弄错了。正确的是:
或者
在上述两个 when insuranceNumberSearch
is 中null
,剩余的表达式不再被评估。如果这样的行为不存在,insuranceNumberSearch.Trim()
将导致引用对象为空异常。可悲的是 LINQ(或者可能是 LINQ-to-NHibernate)不遵守如此好的行为并评估所有表达式,即使insuranceNumberSearch
是null
并且导致错误。
更新2:我发现了一个类似的问题:|| (或)使用 C# 的 Linq 中的运算符
c# - 短路评估和 LINQ-to-NHibernate
似乎 LINQ-to-NHibernate 和 LINQ-to-SQL 不支持where
查询子句中的短路评估。
我对吗?有什么解决方法吗?可以将它添加到 LINQ-to-NHibernate 和 LINQ-to-SQL 的下一个版本中吗?
有关更多信息,请参阅以下内容:
nhibernate - linq2nh 准备好投入生产了吗?
以前有人问过,但那是一年前的事了。我想知道它现在是否可以投入生产?
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 特定问题。
如果有人在那里,我仍然非常喜欢答案:-)
nhibernate - 嵌套选择在 NHibernate.Linq 中不起作用
我想使用以下查询加载用户及其角色的列表:
但是这个查询不起作用。产生以下错误:“未实现方法'Select'。”
¿ 消息提示 NHibernate.Linq 不支持嵌套选择?我想知道这是确定的还是存在其他方式来做到这一点?
PD:请原谅我的英语不好。
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。
nhibernate - Basic Fluent NHibernate 程序编译并运行,但没有任何内容保存到数据库或从数据库加载
我正在尝试一个非常简单的 Fluent Nhibernate 示例:带有一个表的 SQL 2005 数据库,VS2008 控制台应用程序。该表在程序开始前有一条记录。
我正在尝试添加一条记录,然后显示表中的所有记录。程序成功编译运行,没有任何异常,但是没有显示记录。也不会创建 HBM 映射文件。看起来程序完全忽略了数据库(尽管它连接到它)。
这是我的代码 - 我尽量保持最小:
实体:
映射:
程序本身: