tipos subconsultas solo otro inner ejemplos dentro cómo consultas concatenar con campo anidados sql linq linq-to-sql

subconsultas - ¿Cómo se puede manejar una subconsulta IN con LINQ to SQL?



select dentro de otro select oracle (9)

Forma general de implementar IN en LINQ to SQL

var q = from t1 in table1 let t2s = from t2 in table2 where <Conditions for table2> select t2.KeyField where t2s.Contains(t1.KeyField) select t1;

Forma general de implementar EXISTS en LINQ to SQL

var q = from t1 in table1 let t2s = from t2 in table2 where <Conditions for table2> select t2.KeyField where t2s.Any(t1.KeyField) select t1;

Estoy un poco atrapado en esto. Básicamente, quiero hacer algo como la siguiente consulta SQL en LINQ to SQL:

SELECT f.* FROM Foo f WHERE f.FooId IN ( SELECT fb.FooId FROM FooBar fb WHERE fb.BarId = 1000 )

Cualquier ayuda sería recibida con gratitud.

Gracias.


// crear un diccionario / conjunto / colección fids primero

Encuentre otras Artilces

var fids = (from fb in FooBar where fb.BarID = 1000 select new { fooID = fb.FooID, barID = fb.BarID }) .ToDictionary(x => x.fooID, x => x.barID); from f in Foo where fids.HasKey(f.FooId) select f


// crear un diccionario / conjunto / colección fids primero

Encuentre otras Artilces

var fids = (from fb in FooBar where fb.BarID = 1000 select new { fooID = fb.FooID, barID = fb.BarID }) .ToDictionary(x => x.fooID, x => x.barID); from f in Foo where fids.HasKey(f.FooId) select f


Eche un vistazo a este artículo . Básicamente, si desea obtener el equivalente de IN, primero debe construir una consulta interna y luego usar el método Contiene (). Aquí está mi intento de traducir:

var innerQuery = from fb in FoorBar where fb.BarId = 1000 select fb.FooId; var result = from f in Foo where innerQuery.Contains(f.FooId) select f;


Intenta usar dos pasos separados:

// create a Dictionary / Set / Collection fids first var fids = (from fb in FooBar where fb.BarID = 1000 select new { fooID = fb.FooID, barID = fb.BarID }) .ToDictionary(x => x.fooID, x => x.barID); from f in Foo where fids.HasKey(f.FooId) select f


Prueba esto

var fooids = from fb in foobar where fb.BarId=1000 select fb.fooID var ff = from f in foo where f.FooID = fooids select f


from f in Foo where f.FooID == ( FROM fb in FooBar WHERE fb.BarID == 1000 select fb.FooID ) select f;


from f in foo where f.FooID equals model.FooBar.SingleOrDefault(fBar => fBar.barID = 1000).FooID select new { f.Columns };


var foos = Foo.Where<br> ( f => FooBar.Where(fb.BarId == 1000).Select(fb => fb.FooId).Contains(f.FooId));