저는 C#에서 Linq를 사용하여 처음 몇 일을 보았습니다. 다음 문장을 작성하는보다 간결한 방법이 있는지 궁금합니다.람다에서 조인을 사용하는 방법 Where() 테이블에서 <>?
if(db.TableA.Where(u => u.UserID == CurrentUser).Any())
{
//snip
}
하지만 궁금 :
MyEntities db = new MyEntities(ConnString);
var q = from a in db.TableA
join b in db.TableB
on a.SomeFieldID equals b.SomeFieldID
where (a.UserID == CurrentUser &&
b.MyField == Convert.ToInt32(MyDropDownList.SelectedValue))
select new { a, b };
if(q.Any())
{
//snip
}
는 내가 단일 테이블의 필드에 값의 존재를 확인하고자한다면, 난 그냥 다음을 사용할 수 있다는 것을 알 람다 기법을 수행하는 방법이 있는지를 알아야하지만, 두 테이블에서 첫 번째 기법의 조건을 만족시킬 수있는 곳이 있는지 확인하십시오.
실수 나 명확한 점이 있으면 죄송합니다. 필요에 따라 수정하겠습니다. 미리 감사드립니다.
"Convert.ToInt32 (MyDropDownList.SelectedValue)"를 로컬 변수로 이동해야한다고 생각합니다. –
그래, 거기에 (tvanfosson의 게시물을 참조하십시오),하지만, 당신이 작성한 코드를 더 이해할 수 있다고 생각합니다. 개인적으로 조인을 사용해야하는 경우 기능적 Linq 방식을 사용하지 않는 것이 좋습니다. – AxelEckenberger
@Andrew 왜 로컬 변수로 이동합니까? 가독성? @Obalix - 동의하는 경향이 있지만 구문에 대한 불완전한 이해로 인한 것 같습니다. 무슨 일이 일어나고 있는지, 무엇을 언제 사용하는지 더 잘 이해하고 나면 기능적 접근 방식을 선호하게 될 것입니다. –