Dim entName = "Some Auto Dealer"
Dim whereEntity As Expression(Of Func(Of Entity, Boolean)) = Function(en) en.ENTY_Name = entName
Dim login = Repository(Of Entity).Create().FindSingle(whereEntity)
Dim whereDealer As Expression(Of Func(Of Dealer, Boolean)) = Function(dlr) dlr.Entity.Equals(login)
Dim dealer = Repository(Of Dealer).Create().FindSingle(whereDealer)
Dim whereContract As Expression(Of Func(Of MBI_Contract, Boolean)) = Function(c) c.Dealer.Equals(dealer) AndAlso c.Vehicle.Make.Equals(ford)
Dim fordContractsFromPSAuto = Repository(Of MBI_Contract).Create().FindAll(whereContract).ToList()
어떻게하면 좋을까요? 그것은 작동하고 그것은 꽤 빠르지 만 그것은 나에게 잔인한 것 같습니다. FindSingle과 FindAll은 Where 절의 인수로 Expression(Of Func(Of T, Boolean))
을 사용합니다. 이것은 람다 표현을 쓰는 데있어서 처음하는 일이기 때문에 나쁠 때는 용서해주세요.Linq Newbie. 이 Linq 쿼리를보다 간결하게 작성할 수 있습니까?
참고 리포지토리는 일반 클래스이며 Create는 DataContext 개체를 반환하는 팩터 리 메서드입니다. 이 응용 프로그램은 LinqToSql을 사용하고 있습니다.
어떤 조언을 주셔서 감사합니다. 건배, 샌디에고 ~ ck
내가 표현에 익숙하지 않다, 또는 Func을 등, 당신은 C#을 사용하는 것이 좋습니다 아마도 lambda에 대한 표기법은 더 간단 할 것입니다. –
예 100 % C#, c => c.Something = someValue는 사용하기가 매우 쉽지만이 특정 프로젝트는 VB.NET으로 작성되었으며 C#으로 변환하면 프로젝트 관리자의 공룡으로부터 총에 맞았습니다. – Hcabnettek