Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在dotnet core 2.1中默认检索所有性别_C#_Linq_.net Core - Fatal编程技术网

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==女性?男:女;;