English 中文(简体)
NHibernate Linq - how to selected WHERE IN
原标题:NHibernate Linq - how to select WHERE IN

鉴于以下领域模式:

Dog { Id, Name, Color }

Color { Id, Name }

How do I get the Colors for which there are dogs with NHibernate.Linq. In SQL I would

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))

These will give you all of the colors which are used by the dogs.

问题回答

如果你有一份价值清单,那么国家自由委员会目前只能从林克的询问中作出陈述(3.2.0.GA)。 它永远不会产生一份仅未执行的声明。

页: 1

You can make a join :

from c in Color 
from d in dog
WHERE d.ColorId == c.Id 
select c

But that s still a join, so you could as easily try to get the dog colors with one query:

var dogColors = (from d in Dogs
                 select d.ColorId).Distinct().List()

接着,科罗人:

from c in Color
where dogColors.Contains(c.Id)
select c

为什么你们需要一个排位?

这是公正的。

from d in db.Dogs 
select d.Color




相关问题
Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

NSArray s, Primitive types and Boxing Oh My!

I m pretty new to the Objective-C world and I have a long history with .net/C# so naturally I m inclined to use my C# wits. Now here s the question: I feel really inclined to create some type of ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

How to Use Ghostscript DLL to convert PDF to PDF/A

How to user GhostScript DLL to convert PDF to PDF/A. I know I kind of have to call the exported function of gsdll32.dll whose name is gsapi_init_with_args, but how do i pass the right arguments? BTW, ...

Linqy no matchy

Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...

热门标签