- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有以下 QueryOver,它在 newExam.ActiveTo 为 null 时抛出 NullReferenceException(ActiveTo 类型是 DateTime?)
Exam examAlias = null;
examsInSameTime = session.QueryOver(() => examAlias)
.Where(() => examAlias.ActiveTo == null && newExam.ActiveTo == null)
.Future<Exam>();
当我将查询重写到此 HQL 时,一切正常
var query = "from Exam exam where exam.ActiveTo is null and :newExamActiveTo is null)";
examsInSameTime = session.CreateQuery(query)
.SetParameter("newExamActiveTo", newExam.ActiveTo).List<Exam>();
为什么 QueryOver 会抛出异常而 HQL 不会?
最佳答案
我想说,这里的解决方案应该出奇地简单和优雅(但前提是我确实正确阅读了您的问题)。
关键是 - 在 C# 中检查你的参数,不要将它发送到数据库端:
Exam examAlias = null;
var query = session.QueryOver(() => examAlias);
//here we will check what needed
if(newExam.ActiveTo == null)
{
query.Where(() => examAlias.ActiveTo == null)
}
// we can repeat that many times and build WHERE clause as required
...
// finally the query
examsInSameTime = query.Future<Exam>();
所以,这里的技巧是:
关于c# - NHibernate QueryOver NullReferenceException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28880471/
我有以下疑问: Model.RampActiveHour rah = null; var defaultWeekQuery = QueryOver.Of()
为了保持我的查询独立并可能重用,我倾向于在 NH2 中这样做: public class FeaturedCarFinder : DetachedCriteria { public Featu
我正在尝试在 queryover 调用中解耦 orderby,但这无法编译 protected static void AddOrder(IQueryOver criteria, Expression
我在 Nhibernate QueryOver 中有一个查询,它带回了一组剧集对象(剧集是一个护理咒语),这些对象又具有一组剧集状态作为每个剧集的属性。但是我想改变这一点,以便每一集只带回该集的最新状
假设我有三个简单的表 schedule { Student student { get; set;} Teacher teacher { get; set;} bool Del
我有一个小问题:我会在我的 QueryOver 中插入一个条件来检查变量值。像这样: var qOver = QueryOver.Of(() => myMod) .J
如何通过字符串属性的长度限制查询?例如。就像是: NHSession.QueryOver() .Where(p => p.RegistryCode.Length == 8) 最佳答案 像这样的
尝试使用 QueryOver 和标记的枚举查询。这适用于 Nhibernate.Linq: var results = repo.Query() .Where(x => (x.Classifica
我正在尝试使用 QueryOver 从数据库更新记录. 我的代码最初创建一个实体并保存在数据库中,然后在数据库外部更新相同的记录(来自其他程序,手动或在其他机器上运行的相同程序),当我调用 query
我想要做的是显示一个简单的数据网格,其中包含实体数据及其子项的聚合数据。例如,让我们使用订单和订单项。我想显示订单信息和订单项的数量。 订单 ID、订单日期、NumOfLineItems 现在通常在
我想用 QueryOver 编写这样一个查询,以便结果 SQL 将类似于以下内容: Select Bar, count(*) from Foo group by Bar having count(*)
我想模拟这个查询: SELECT * FROM FOO WHERE ID IN (1,2,3) 我怎样才能在 FNH 中做到这一点? var ids = new List{1,2,3}; var re
我正在尝试从我的 User 对象中加载多对多集合中的角色。 Role role = null; IQueryOver query = session.QueryOver()
我有以下使用子查询的 NHibernate 查询: NHContext.Session.QueryOver() .WithSubquery.WhereProperty(x =>
我有这个 设想: class User { Id, UserName } class UserRelationship { User GroupUser, User MemberUser } and
我在投影 sql Coalesce 函数时遇到了 nhibernate 问题。 我正在比较来自两个不同实体的两个具有相同名称的字符串属性。在生成的 SQL 中,仅比较第一个实体的相同属性,如下所示:
StackOverflow 用户您好, 我遇到了这个问题我有三个 QueryOver,每个都返回一个候选 id 列表,然后我用它来引入这些候选。为此我编写了以下代码。 private
如何使用 QueryOver 重写此 SQL?我不确定 QueryOver 的连接优先级和解析是如何工作的。 SELECT DISTINCT T1.* FROM T1 LEFT JOIN T2
我的类(class)的简单示例: public class Post { public IEnumerable Tags { get; set; } } 用户检查一些感兴趣的标签来过滤帖子列表
考虑这个人为的域: namespace TryHibernate.Example { public class Computer { public int Id { get; set; }
我是一名优秀的程序员,十分优秀!