1
我想创建一个基于用户输入的Linq查询。编写SQL我可以建立一个基于选择的值,但与LINQ到SQL的SQL选择字符串我不知道该怎么做。我正在使用LINQ到SQL类。这是我有什么建立动态LINQ到SQL查询
// Locals
TalentDBDataContext talentDB = new TalentDBDataContext()
int minAge = 0;
int maxAge = 120;
bool maleChecked = false;
bool femaleChecked = false;
List<string> ethnicities = new List<string>();
List<string> states = new List<string>();
var formData = Request.Form;
foreach (string key in formData.AllKeys)
{
string val = formData[key];
switch(key)
{
case "AgeMinTxBx":
minAge = Int32.Parse(val);
break;
case "AgeMaxTxBx":
maxAge = Int32.Parse(val);
break;
case "GenderMaleCB":
maleChecked = true;
break;
case "GenderFemaleCB":
femaleChecked = true;
break;
case "EthnicitySelector":
ethnicities = val.Split(new char[]{','}, StringSplitOptions.RemoveEmptyEntries).ToList();
break;
case "StateSelector":
states = val.Split(new char[]{','}, StringSplitOptions.RemoveEmptyEntries).ToList();
break;
default:
break;
}
}
var results =
from t in talentDB.Talent
(femaleChecked == true) ? where t. // I don't thing this will work..
有没有办法我可以做到这一点?希望这是有道理的。我喜欢intellisense linq提供和错误检查。也许还有一种方法可以编写普通的sql select字符串,而且我可以在这种情况下使用它。谢谢
向我们展示您希望您的查询看起来像(也许在SQL中)。另外,我发现foreach-switch结构有点吓人。任何你没有使用的理由:`minAge = int.Parse(formData [“AgeMinTxBx”]);`语句? – Steven 2010-11-23 07:48:34