我正在使用LINQ to SQL(通過DBML),我需要限制並且存在問題。我正在使用動態LINQ併發送由最終用戶以前確定的變量。我有一個在數據庫中的視圖(通過左外連接)主數據庫表中的數據和5個表連接到它。因爲我(而且必須)使用動態LINQ,所以BD的結果集必須是.AsQueryable(),從而創建一個IQueryable結果集。下面是它正在做什麼的一個例子:使用LINQ to SQL獲取IQueryable結果集的不同值
可以說,該視圖可以保存汽車信息(品牌,型號,年份,顏色,米拉格,服務記錄)。 如果用戶將在他們希望看到的是,今年已提供服務的所有福特野馬,結果集中會回來這樣
[uniqueID - 1][Ford][Mustang][1/1/2012](service date)
[uniqueID - 1][Ford][Mustang][2/1/2012](service date)
[uniqueID - 1][Ford][Mustang][3/1/2012](service date)
[uniqueID - 1][Ford][Mustang][4/1/2012](service date)
這很好,讓我們假設,這個特殊的野馬已經有4個服務今年完成。
但是,如果用戶將在剛剛看到全黑色的福特那麼它回來
[uniqueID - 1][Ford][Mustang]
[uniqueID - 1][Ford][Mustang]
[uniqueID - 1][Ford][Mustang]
[uniqueID - 1][Ford][Mustang]
[uniqueID - 2][Ford][Taurus]
它返回行的每一個服務,即使該服務會爲空,則返回擁有的IQueryable a .Distinct()。
return data.Distinct().OrderBy(strOrderBy).Select("New(" + strItems + ")");
我需要能夠做的,是採取的IQueryable並從中獲得不同的值,因爲在未來的變量是動態的,我不知道如何做到這一點。
爲什麼會有4個服務行是空?這些行不應該不存在於服務表中嗎? – omatase
@omatase問題在於服務存在,但是當我想要提取不涉及服務的數據時,我無法獲取不同的值,因爲該視圖看到服務,因此它不是獨特的。 – EvanGWatkins