我有一个要按性别过滤的应用程序。我有一个存储性别的课程,如下所示:
public class SampleParams
{
public string Gender { get; set; }
...
}
在存储库类中,查询结果如下:
var samples = context.Samples.AsQueryable();
samples = samples.Where(u => u.Gender == sampleParams.Gender);
在我的控制器类中,我检查以确保我的SampleParams
类具有以下值:
if(string.IsNullOrEmpty(sampleParams.Gender))
{
sampleParams.Gender = sampleParams.Gender == "female" ? "male" : "female";
}
var samples = await repository.GetAllSamples(sampleParams);
...
在SQL Server中,“性别”字段中有“ male”,“ female”和null值。我的问题是,当我用PostMan测试时,我只有女性,因为默认情况下我将sample.Params
设置为“女性”。如果“ sampleParams.Gender”默认为空,我试图检索所有性别的样本(以及空值)。
任何帮助将被申请。
答案 0 :(得分:1)
如果您想忽略性别过滤器(如果为空):
new C()
答案 1 :(得分:0)
删除此:
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);
希望对您有所帮助。问候