Pus*_*tal 1 linq asp.net-mvc asp.net-mvc-3 asp.net-mvc-2
我正在ASP.NET MVC 3上设计一个项目.
我在我的控制器中使用此查询:
int batchSize = (int)db.ProductFormulation
.Where(r => r.ProductID == p)
.Min(r => r.Quantity);
Run Code Online (Sandbox Code Playgroud)
其中p由用户输入.
当我运行我的项目并且用户输入我的表中不存在的p值时,则会发生错误.
如何停止此错误,例如,应创建一个消息框,指出您输入的值不存在记录,并且我的项目应该连续运行.
请建议我该怎么做.提前致谢.
您收到错误是因为Min在没有元素的序列上操作.
你基本上在寻找MinOrDefault(),这在LINQ框架中是不存在的.
这个答案有很好的实现方法.
或者,如果您不想在服务器端执行聚合操作,则可以首先实现序列,然后执行min:
int batchSize = 0;
var results = db.ProductFormulation.Where(r => r.ProductID == p).ToList();
if (results.Count > 0)
batchSize = results.Min(x => x.Quantity);
Run Code Online (Sandbox Code Playgroud)
显然,如果你有很多记录,上面的内容并不合适,你最好使用上面提到的扩展方法.
| 归档时间: |
|
| 查看次数: |
148 次 |
| 最近记录: |