2012-05-30 67 views
7

Vì một số lý do tại sao nó nói rằng "firstname" không tồn tại trong Entity Entity. Nhưng nó được thiết lập cho thực thể SystemUser. Bất kỳ ý tưởng tại sao nó bị nhầm lẫn? Cảm ơn!Lỗi trong câu lệnh Where in LINQ

  var linqQuery = (from r in gServiceContext.CreateQuery("opportunity") 
          join c in gServiceContext.CreateQuery("account") on ((EntityReference)r["accountid"]).Id equals c["accountid"] 
          join u in gServiceContext.CreateQuery("systemuser") on ((EntityReference)r["ownerid"]).Id equals u["systemuserid"] 
          where r["new_leadstatus"].Equals("100000004") && u["lastname"].Equals(rsmLastName) && u["firstname"].Equals(rsmFirstName) 
          select new 
          { 
           AccountId = !r.Contains("accountid") ? string.Empty : r["accountid"], 
           Account = !r.Contains("name") ? string.Empty : r["name"] 
          }); 

Trả lời

10

Đảm bảo bạn đặt từng mệnh đề where vào dòng riêng của mình per Microsoft guidelines.

Các nơi khoản áp dụng một bộ lọc để kết quả, thường sử dụng một biểu thức Boolean . Bộ lọc chỉ định yếu tố nào cần loại trừ khỏi trình tự nguồn. Mỗi điều khoản trong đó điều khoản chỉ có thể chứa các điều kiện đối với một loại thực thể duy nhất. Một điều kiện hỗn hợp liên quan đến nhiều thực thể không hợp lệ. Thay vào đó, mỗi đối tượng phải được lọc theo các điều khoản riêng biệt trong đó điều khoản.

var linqQuery = from r in gServiceContext.CreateQuery("opportunity") 
       join c in gServiceContext.CreateQuery("account") on ((EntityReference)r["accountid"]).Id equals c["accountid"] 
       join u in gServiceContext.CreateQuery("systemuser") on ((EntityReference)r["ownerid"]).Id equals u["systemuserid"] 
       where r["new_leadstatus"].Equals("100000004") 
       where u["lastname"].Equals(rsmLastName) && u["firstname"].Equals(rsmFirstName) 
       select new 
       { 
        AccountId = !r.Contains("accountid") ? string.Empty : r["accountid"], 
        Account = !r.Contains("name") ? string.Empty : r["name"] 
       }; 
+0

Không biết bạn có thể có hai câu lệnh. làm việc như say mê, cảm ơn! –

+0

Tìm hiểu điều gì đó mới mỗi ngày. Cảm ơn @Peter –

+0

Chỉ cần dành một vài giờ đập đầu của tôi chống lại bức tường trên này. Cảm ơn bạn. –

2

Bạn định nghĩa của bạn tham chiếu đến các tổ chức Cơ hội là 'r' nhưng đang cố gắng để đọc firstname từ 'u'

from r in gServiceContext.CreateQuery("opportunity") 

u["firstname"] 

Thay đổi cuối của bạn, nơi để

r["firstname"].Equals(rsmFirstName) 
+0

nhưng tôi muốn kiểm tra firstname từ systemuser không cơ hội và lnew_leadstatus từ cơ hội. –

Các vấn đề liên quan