1

EF で linq を使用したクエリで問題が発生しています。

基本的に、私がやろうとしていることは、プレーンSQLでこれです:

SELECT
    t2.*
FROM
    [SHP_Console2].[dbo].[Domain] t1
INNER JOIN
    [SHP_Console2].[dbo].[Domain] t2
    ON t2.[left] >=t1.[left] AND t2.[right]<=t1.[right]
WHERE
    t1.ID =1

私はlinqでこれを行うことができません。

私はこれを試しています:

 from a in DomainRep.Where(c => c.ID == domainID).Select(c => new { c.left, c.right })
 from b in DomainRep.Where(x => x.left >= a.left && x.right <= a.right)
 select a;

私が間違っているのは何ですか?

4

2 に答える 2

2

クエリに匿名型を混在させました。このようにすることはできません。

JOINまた、条件付きで使用することもできません>=。LINQ はその種のステートメントをサポートしていません。ただし、代替構文を使用して実行できます。

from a in DomainRep
from b in DomainRep
where b.left >= 1.left && b.right <= a.right && a.ID = 1
select b;
于 2013-04-04T10:07:21.873 に答える
-1

編集: 参照: http://social.msdn.microsoft.com/Forums/en-US/linqprojectgeneral/thread/428c9db2-29f6-45d8-ab97-f00282397368/

             var query = (from a in DomainRep
             from b in DomainRep 
             where a.left >= b.left
             select b)
            .ToList();
于 2013-04-04T10:03:22.300 に答える