- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何使用 QueryOver 重写此 SQL?我不确定 QueryOver 的连接优先级和解析是如何工作的。
SELECT DISTINCT T1.*
FROM T1
LEFT JOIN T2
JOIN T3
ON T2.T3Key = T3.PrimaryKey
ON T1.PrimaryKey = T2.T1Key
LEFT JOIN T4
JOIN T5
ON T4.T5Key = T5.PrimaryKey
ON T1.PrimaryKey = T4.T1Key
WHERE T3.Criteria = @Criteria
OR T5.Criteria = @Criteria
最佳答案
假设您已设置所有关系,只需设置要在 QueryOver 中使用的别名变量...
T2 t2Alias = null;
T3 t3Alias = null;
T4 t4Alias = null;
T5 t5Alias = null;
int criteria = 1;
var results = Session.QueryOver<T1>()
.Left.JoinAlias(x => x.T2, () => t2Alias)
.Left.JoinAlias(() => t2Alias.T3, () => t3Alias)
.Left.JoinAlias(x => x.T4, () => t4Alias)
.Left.JoinAlias(() => t4Alias.T5, () => t5Alias)
.Where(Restrictions.Disjunction()
.Add(Restrictions.Where(() => t3Alias.Criteria == criteria))
.Add(Restrictions.Where(() => t5Alias.Criteria == criteria)))
.TransformUsing(Transformers.DistinctRootEntity)
.List();
我认为您无法嵌套这些内部联接...但看起来您会通过所有左联接获得相同的结果。
关于NHibernate QueryOver 多个表的联接语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25312088/
我有以下疑问: 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; }
我是一名优秀的程序员,十分优秀!