var result = (from s1 in context.Order_Details
where s1.ProductID == 42 select s1.OrderID).Distinct().Count();
|
SELECT COUNT(*) AS [value]
FROM (
SELECT DISTINCT [t0].[OrderID]
FROM [dbo].[Order Details] AS [t0]
WHERE [t0].[ProductID] = @p0
) AS [t1]',N'@p0 int',@p0=42
|
static void NestedQuery()
{
NorthwindDataContext context = new NorthwindDataContext ();
context.Log = Console.Out;
var fquery = GetFirstQuery(context);
var ret = DoSecondQuery(context, fquery);
foreach (var item in ret)
Console.WriteLine(item.CustomerID);
}
static IQueryable<Customer> GetFirstQuery(NorthwindDataContext context)
{
IQueryable<Customer> result = from s1 in context.Customers select s1;
return result;
}
static IQueryable<Customer> DoSecondQuery(NorthwindDataContext context,
IQueryable<Customer> firstQuery)
{
var result = from s1 in firstQuery
where s1.CustomerID == "VINET"
select s1;;
return result;
}
|
static void NestedQuery()
{
DataClasses1DataContext context = new DataClasses1DataContext();
context.Log = Console.Out;
var fquery = GetFirstQuery(context);
var ret = DoSecondQuery(fquery);
foreach (var item in ret)
Console.WriteLine(item.CustomerID);
}
static IEnumerable<Customers> GetFirstQuery(DataClasses1DataContext context)
{
IEnumerable<Customers> result = from s1 in context.Customers select s1;
return result;
}
static IEnumerable<Customers> DoSecondQuery(IEnumerable<Customers> firstQuery)
{
IEnumerable<Customers> result = null;
if (firstQuery is IQueryable<Customers>)
result = from s1 in (IQueryable<Customers>)firstQuery
where s1.CustomerID == "VINET"
select s1;
else
result = from s1 in firstQuery
where s1.CustomerID == "VINET"
select s1;;
return result;
}
|