2011-07-17 177 views
0

我有休耕表的相關對象來獲得實體對象: 公司---> RelCompanyTax --->覈對表 我想要得到的公司,RelCompanyTax.CheckList.Month = 5 所以問題是:如何使用LINQ從DB獲取所需的公司。如何使用where子句

例如我試圖像這樣創建查詢:

var query = from comps in _context.Companies 
     where comps.RelCompanyTax.CheckList.Month = 5 
     select comps; 
List<Company> resultCompanies = query.ToList(); 

,但我不能,因爲這是錯誤的語法。 如果可能,請幫助我用正確的語法編寫。

欲瞭解更多信息,我想說我已經客戶端< - >服務架構,所以實體在服務端,問題不在雙賦值符號這是比較謂詞,是的,你是對的我已經本主題中的語法錯誤,因爲我不會複製源代碼中的代碼。我已經寫了comps.RelCompanyTax.CheckList.Month = 5直接到這個話題。我的最終結果是讓所有公司採用comps.RelCompanyTax.CheckList.Month == 5標準。問題出在System.Data.Objects.DataClasses.EntityCollection。

錯誤4無法轉換lambda表達式到類型「串」,因爲它不是一個委託類型CompanyService.cs 20 25 TAService

錯誤5委託「系統:我已經編譯後的代碼複製下面的錯誤消息。 Func'不帶1個參數CompanyService.cs 20 25 TAService

----------->最重要的錯誤消息:---------------- >

錯誤6'System.Data.Objects.DataClasses.EntityCollection'不包含'CheckList'的定義,也沒有接受第一個參數類型的擴展方法'CheckList' 'System.Data.Objects.DataClasses.EntityCollection'可以被找到(您是否缺少using指令或程序集引用?) CompanyService.cs

在獲取沒有where子句的公司後,我可以通過way List<RelCompanyTax> relCompanyTaxes = currentCompany.RelCompanyTaxes.ToList(); int checkListCount = relCompanyTaxes[0].CheckLists.Count;

但是當我試圖在where子句中使用CheckList屬性時,發生4,5和6錯誤。

+0

什麼錯誤信息? – Vlad

+0

@artos,顯示類型查詢。 – Mediator

回答

2

我想你只需要

comps.RelCompanyTax.CheckList.Month == 5 
2

你缺少等號= - 單=是分配,雙==是比較(這是你想要的):

var query = from comps in _context.Companies 
      where comps.RelCompanyTax.CheckList.Month == 5 
      select comps;