C# 在dotnet core 2.1中默认检索所有性别
我有一个应用程序,我正在尝试按性别筛选。我有一个存储性别的类,如下所示:C# 在dotnet core 2.1中默认检索所有性别,c#,linq,.net-core,C#,Linq,.net Core,我有一个应用程序,我正在尝试按性别筛选。我有一个存储性别的类,如下所示: public class SampleParams { public string Gender { get; set; } ... } var samples = context.Samples.AsQueryable(); samples = samples.Where(u => u.Gender == sampleParams.Gender); if(string.IsNullOrEmpt
public class SampleParams
{
public string Gender { get; set; }
...
}
var samples = context.Samples.AsQueryable();
samples = samples.Where(u => u.Gender == sampleParams.Gender);
if(string.IsNullOrEmpty(sampleParams.Gender))
{
sampleParams.Gender = sampleParams.Gender == "female" ? "male" : "female";
}
var samples = await repository.GetAllSamples(sampleParams);
...
在我的repository类中,我查询结果如下:
public class SampleParams
{
public string Gender { get; set; }
...
}
var samples = context.Samples.AsQueryable();
samples = samples.Where(u => u.Gender == sampleParams.Gender);
if(string.IsNullOrEmpty(sampleParams.Gender))
{
sampleParams.Gender = sampleParams.Gender == "female" ? "male" : "female";
}
var samples = await repository.GetAllSamples(sampleParams);
...
在我的控制器类中,我检查以确保我的SampleParams类具有如下值:
public class SampleParams
{
public string Gender { get; set; }
...
}
var samples = context.Samples.AsQueryable();
samples = samples.Where(u => u.Gender == sampleParams.Gender);
if(string.IsNullOrEmpty(sampleParams.Gender))
{
sampleParams.Gender = sampleParams.Gender == "female" ? "male" : "female";
}
var samples = await repository.GetAllSamples(sampleParams);
...
在SQL server中,我在性别字段中有男性、女性和null值。我遇到的问题是,当我用PostMan测试时,我只得到女性,因为我默认将sample.Params设置为女性。如果默认情况下`sampleParams.Gender为null,我将尝试检索所有性别的样本以及null。
任何帮助都将受到感谢 如果要忽略性别筛选器(如果为空):
var samples = context.Samples.AsQueryable();
if (!string.IsNullOrEmpty(sampleParams.Gender))
{
samples = samples.Where(u => u.Gender == sampleParams.Gender);
}
删除以下内容:
if(string.IsNullOrEmpty(sampleParams.Gender))
{
sampleParams.Gender = sampleParams.Gender == "female" ? "male" : "female";
}
在存储库类中,执行以下操作:
var samples = context.Samples.AsQueryable();
return string.IsNullOrEmpty(sampleParams.Gender)?samples:samples.Where(u => u.Gender == sampleParams.Gender);
希望能有所帮助。问候语sampleParams.Gender==女性?男:女性这似乎不对,你想切换性别吗?如果我没有选择任何值,上面的代码默认为女性。如果我选择male,它将返回male。我的目标是在不选择任何内容的情况下检索所有带有null的性别。我不确定我是否解释得很好。我不确定我是否在跟踪你,sampleParams.Gender=sampleParams.Gender=female?男性:女性更改sampleParams的值。性别,如果它是女性,它将变为男性,否则包括null,它将变为女性让我试着这样解释:如果我想用null显示所有性别,我应该怎么做?sampleParams.Gender=sampleParams.Gender==女性?男:女;;