【发布时间】:2014-12-31 20:56:01
【问题描述】:
我有一个代码段和这样的查询:
var sub = db.Subcategories.Where(s => s.SubcategoryName == sid).FirstOrDefault();
var businesses = db.Businesses.Where(b => b.StateID == rvm.StateID && b.Subcategories.Contains(sub));
if (businesses == null)
{
return View("NoBusinessFoundInSubcategory");
}
重点是businesses的值应该是null。但是当我签入调试器时,它的值是这样的:{System.Data.Entity.Infrastructure.DbQuery<Project.Models.Business>}。当它遇到另一个在代码后面定义的查询时,就是这个:
var list = businesses.AsEnumerable().OrderBy(b => Math.Abs(Convert.ToInt32(temp) - Convert.ToInt32(b.Zip))).Take(10).ToList();
我收到一条错误消息:
无法创建类型的常量值 '项目.模型.子类别'。只有原始类型或枚举 在此上下文中支持类型。
知道问题可能是什么,以及如何解决?
【问题讨论】:
-
重点是business的value应该为null:不,永远不应该为null。根据经验,任何返回可枚举的 LINQ 方法都不会返回 null,而是返回空的可枚举。
标签: c# asp.net-mvc linq