где в пункте в сущности Famework - PullRequest
0 голосов
/ 29 декабря 2011

У меня есть требование написать запрос с предложением where. Я использую Entity Framework 4.

Мой sql запрос:

select ITEMNMBR, locncode, qtyonhnd, atyalloc 
from dbo.iv00102 
where ITEMNMBR IN (
                   SELECT  cmptitnm 
                   from dbo.bm00111
                   where itemnmbr == bomItem)
AND LOCNCODE = 'MEMPHIS'

Нужен запрос примерно так:

public static Func<DBEntities, string, IQueryable<IV00102>> compiledMemphisQuery =
        CompiledQuery.Compile((DBEntities ctx, string bomNumber) =>
            from items in ctx.IV00102
            where   items.ITEMNMBR in (
                                        from orders in ctx.bm00111
                                        where orders.itemnmbr == bomItem
                                        select orders.cmpitnm)
            and items.locncode == "Memphis"
            select items);

1 Ответ

1 голос
/ 29 декабря 2011

Используйте метод расширения Содержит запрос.Должно работать:

public static Func<DBEntities, string, IQueryable<IV00102>> compiledMemphisQuery =
    CompiledQuery.Compile((DBEntities ctx, string bomNumber) =>
        from items in ctx.IV00102
        where   (
                                    from orders in ctx.bm00111
                                    where orders.itemnmbr == bomItem
                                    select orders.cmpitnm)
        and items.locncode == "Memphis"
        select items).Contains(items.ITEMNMBR);
...