我试图基于用户的输入创建一个Linq查询。编写sql时,我可以根据选择的值构建一个sql select字符串,但是使用linqtosql时,我不知道如何实现它。我正在使用linq to 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字符串,在这种情况下我可以这样做。谢谢