c# - NHibernate Linq - 如何选择 WHERE IN

标签 c# linq nhibernate

给定以下领域模型:

Dog { Id, Name, Color }

Color { Id, Name }

如何使用 NHibernate.Linq 获取有狗的颜色。在 SQL 中我会

SELECT Color.Id, Color.Name FROM Color 
    WHERE Id IN 
    (SELECT DISTINCT Dog.ColorId FROM Dog);

最佳答案

这可能有效:

Colors.Where(c => Dogs.Any(d => d.Color.Equals(c)))

但是,如果您纯粹根据颜色标识符进行匹配,请尝试以下操作:

Colors.Where(c => Dogs.Any(d => d.Color.Id == c.Id))

这些将为您提供狗使用的所有颜色。

关于c# - NHibernate Linq - 如何选择 WHERE IN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7966207/

相关文章:

c# - 如何生成 txt 文件然后在 ASP.NET Web 窗体中强制下载?

c# - MVC 和 Entity Framework Html.DisplayNameFor 与复合 ViewModel

c# - 在linq中将多列求和并分组为一个值

nhibernate动态绑定(bind)一个类

c# - c# winforms 应用程序中的 datagridview/controls 中的子级对象属性绑定(bind)

c# - 在列表上创建哈希值?

c# - 需要初始化一个整型linq表达式

c# - 什么时候扩展方法中的 lambda 会做太多?

c# - NHibernate - 流式传输大型结果集?

c# - NHibernate 按代码映射 ComponentAsId 中的列无效