默认情况下,在dotnet core 2.1中检索所有性别

时间:2019-02-08 21:51:27

标签: 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);

在我的控制器类中,我检查以确保我的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”默认为空,我试图检索所有性别的样本(以及空值)。 任何帮助将被申请。

2 个答案:

答案 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);

希望对您有所帮助。问候

相关问题