我在Web表單中有四個按鈕,其目的是分別加載第一個,上一個,下一個和最後一個記錄。 他們通過將當前ID加載到表單中並根據需要進行操作。我正在使用Linq to SQL。 下面是我用於NEXT記錄的代碼,如果我想按ID加載下一條記錄,它的功能正常。LINQ中的動態查詢
var dx = new DataModelDataContext();
List<Dog> dogList = dx.Dogs.AsEnumerable().ToList();
try
{
return
dogList.SkipWhile(x => x.Id != dogId).Skip(1).FirstOrDefault().Id.ToString(
CultureInfo.InvariantCulture);
}
catch
{
return null;
}
我重複一遍,對於前面的場景,這段代碼工作正常。
這種情況已經改變,我現在必須使用前面提到的按鈕檢索記錄,根據 下拉列表包含表單的屬性(名字,姓氏,性別等等)它不再是一個功能,其目的是通過ID找到下一條記錄 。
我正在考慮創建一個LoadNextRecord(searchParameter,TextboxValue),以便根據從下拉列表中指定的屬性 找到下一條記錄。
但是,是否可以動態指定要與哪些屬性比較我的數據?
例如:X => X [searchParameter] = textboxvalue
我知道這是可能的使用動態SQL ......不過,我想知道是否有可能使用LINQ。!。
如果您的架構支持它,我喜歡@馬龍的回答,因爲它是最類型安全最好的。但是,如果您的搜索標準是基於用戶輸入的,那麼您可能會遇到魔術字符串。 – 2012-07-20 15:38:16