3
このようにクエリを作成できますか?C#Linq Join Equals Where
var result = from us20 in Us20Repository.GetAll()
join pj01 in Pj01Repository.GetAll() on new
{
User =
(us20.company == "kodofisi" ?
us20.personalId :
(
us20.company == "coca-cola" ?
(
(from pj02 in Pj02Repository.GetAll()
where
pj02.id == us20.id &&
pj02.personalId == us20.personalId
select new
{
pj02.id
}).First().ToString()
) :
""
)
),
ACTIVE = "X"
} equals new { User = pj01.name, ACTIVE = pj01.active }
select new
{
Name = pj01.id
};
これはジョインでは機能しません。それ以外の方法は選択を使用して行うことができますか?データが来ない。
対応するクエリは、それが動作です:
/*bla bla*/ FROM us20 US20 INNER JOIN pj01 PJ01 ON PJ01.PJID = ( CASE WHEN (US20.company = "kodofisi") THEN US20.personalId WHEN (US20.BKNM = "coca-cola") THEN ( SELECT dataId FROM pj02 WHERE id = US20.id AND personalId = US20.personalId ) END ) AND PJ01.active = "X"