Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.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# 如何使用“逻辑”;及;linq中的运算符_C#_Linq_Asp.net Core - Fatal编程技术网

C# 如何使用“逻辑”;及;linq中的运算符

C# 如何使用“逻辑”;及;linq中的运算符,c#,linq,asp.net-core,C#,Linq,Asp.net Core,有人能告诉我为什么这不起作用吗?它返回一个空列表。 我的http请求如下:https://localhost:44313/api/movies/7/9 我在数据库中有一部电影的评级为8 [HttpGet("{Start}/{End}")] public IEnumerable<Movie> GetReport(int start, int end) { return _context.Movies .Where(m => (m.Rating &

有人能告诉我为什么这不起作用吗?它返回一个空列表。 我的http请求如下:
https://localhost:44313/api/movies/7/9
我在数据库中有一部电影的评级为8

 [HttpGet("{Start}/{End}")]
 public IEnumerable<Movie> GetReport(int start, int end)
 {
     return _context.Movies
         .Where(m => (m.Rating >= start) && (m.Rating <= end))
         .OrderBy(x => x.YearRelease)
         .ToList();
 } 
[HttpGet(“{Start}/{End}”)]
公共IEnumerable GetReport(int开始,int结束)
{
return\u context.Movies
其中(m=>(m.Rating>=开始)和(m.Rating x.YearRelease)
.ToList();
} 

调试它。我猜函数参数变量没有正确填充,因此它正在查找0调试它。我猜函数参数变量没有正确填充,因此它正在查找0绑定是问题所在

假设您的控制器名为
MoviesController
,请尝试

 [HttpGet("{start}/{end}")]
 public IEnumerable<Movie> GetReport([FromUri]int start, [FromUri]int end)
 {
     return _context.Movies
         .Where(m => (m.Rating >= start) && (m.Rating <= end))
         .OrderBy(x => x.YearRelease)
         .ToList();
 } 
[HttpGet(“{start}/{end}”)]
公共IEnumerable GetReport([FromUri]int-start,[FromUri]int-end)
{
return\u context.Movies
其中(m=>(m.Rating>=开始)和(m.Rating x.YearRelease)
.ToList();
} 

绑定是问题所在

假设您的控制器名为
MoviesController
,请尝试

 [HttpGet("{start}/{end}")]
 public IEnumerable<Movie> GetReport([FromUri]int start, [FromUri]int end)
 {
     return _context.Movies
         .Where(m => (m.Rating >= start) && (m.Rating <= end))
         .OrderBy(x => x.YearRelease)
         .ToList();
 } 
[HttpGet(“{start}/{end}”)]
公共IEnumerable GetReport([FromUri]int-start,[FromUri]int-end)
{
return\u context.Movies
其中(m=>(m.Rating>=开始)和(m.Rating x.YearRelease)
.ToList();
} 


看起来不错,您确定问题出在
上吗?如果删除一个或另一个条件,您会得到一个非空列表?如果绑定不起作用,您的开始值和结束值可能为0?您是否调试过它以确保
开始
结束
是您期望的?它们在您的rou中大写te模板,但不在参数列表中…ints的默认值为0,可能是
开始
结束
包含0,并且按照@AmyYeap的建议返回一个空枚举。解决了问题。谢谢。看起来很好,您确定
是问题所在吗?如果删除一个或另一个条件,您可以设置一个非空列表?如果绑定不起作用,您的起始值和结束值可能为0?您是否对其进行了调试,以确保
start
end
是您期望的值?它们在路由模板中大写,但在参数列表中不大写…ints的默认值为0,可能是
start
de>end
包含0,并且正在返回@AmyYeap建议的空枚举。解决了问题。谢谢。是的,你是对的。我试图找出and运算符的错误,但现在我发现我的参数是0。为什么?请尝试在属性[HttpGet(“{start}/{end}”)中使它们小写是的。解决了问题。谢谢。是的,你是对的。我试图找出and运算符的错误,但现在我看到我的参数是0。为什么?尝试在属性[HttpGet(“{start}/{end}”)]中使它们小写。是的。解决了问题。谢谢。我最初尝试使用[fromUri]但是它没有导入。我不知道为什么。但是我路由中的大写字母是问题所在。@Andrada路由参数必须与函数参数名称完全匹配,除非您特别告诉它。我首先尝试使用[fromUri]但是它没有导入。我不知道为什么。但是我路由中的大写字母是问题所在。@Andrada路由参数必须与函数参数名称完全匹配,除非您特别告诉它。