我一直在使用第三方DAL(SubSonic)爲所有數據庫對象生成類的項目。表達式語法單字段
用於查詢這些對象,將現有代碼的做法已普遍:
int keyValue = 1;
TableObject t = TableObject.SingleOrDefault(x => (x.keyField == keyValue));
if (t != null) {
int valueWeWant = t.fieldWeWant;
string otherValueWeWant = t.otherFieldWeWant;
}
我一直一般設法降低SQL流量儘可能的,因爲我們往往有較大的行和經常只涉及一個或兩個領域。到目前爲止,我已經能夠找到最好的辦法是:
int keyValue = 1;
var t = TableObject.All().Where(x => (x.keyField == keyValue)).Select(x => new { x.fieldWeWant, x.otherFieldWeWant}).Take(1);
if ((t != null) && (t.Count() != 0)) {
int valueWeWant = t.First().fieldWeWant;
string otherValueWeWant = t.First().otherFieldWeWant;
}
我喜歡生成的SQL只選擇單個行和2場,並且很高興與匿名類型的可讀性,但有比較.Count()對我來說似乎很浪費。
我錯過了一個更簡單的方法來執行此操作嗎?
我編輯了你的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –