2011-12-09 19 views
0

このSQLをLinq To Entitiesに変換するのに問題があります。私はそれを分解する方法を誰かが私に説明することはできますか?SQLからLinq to Entitiesへの変換

select 
    p.ID, p.Name, p.IsActive, ug.Name 
from 
    Projects as p 
inner join UserGroups as ug ON p.UserGroups_ID = ug.ID 
where 
    p.UserGroups_ID IN (select UserGroups_ID from UsersToUserGroups where Users_ID = 1) 
    and 
    p.IsDeleted = 0 
order by 
    p.UserGroups_ID, 
    p.Name 

おかげ

+0

誰? 必要に応じてダイアグラムのスクリーンショットを提供することができます – user706058

答えて

0
(
from p in [context].Projects 
join ug in [context].UserGroups 
on p.UserGroups_ID equals ug.ID 
where ug.Users.Any(x => x.ID.Equals(userId)) 
&& p.IsDeleted.Equals(false) 
orderby p.UserGroups_ID, p.Name 
select new 
{ 
    ID = p.ID, 
    Name = p.Name, 
    IsActiveStatus = p.IsActive, 
    GroupName = ug.Name 
} 
) 
0
var results = from p in context.Projects 
       join ug in context.UserGroups 
        on p.UserGroups_ID equals ug.ID 
       where (from utug in context.UserToUserGroups 
        where utug.Users_ID == 1 
        select UserGroups_ID).Contains(p.UserGroups_ID) 
        && !p.IsDeleted 
       order by p.UserGroups_ID, p.Name 
       select new { p.ID, p.Name, p.IsActive, UserGroupName = ug.Name }; 
+0

「匿名タイプは同じ名前の複数のプロパティを持つことができません」という選択肢では、「ug.Name」にエラーが表示されます。 – user706058

+0

@ user706058 - 修正されました。 –

+0

演算子 '&&'は行 '&&!p.IsDeleted'の型..のオペランドには適用できません。私はこれを修正しようとしましたが、どちらも動作するようにはできません。 L2Eにはユーザーとグループの間にリレーショナルテーブルがあるので、 'UserToUserGroups'テーブルはそこにありません(インテリセンス)、私は使用できません。 – user706058