var model = from m in db.Customers
orderby m.a descending
select new Get_Complaint_Form_Sub
{
CustomerFullName = m.a,
Email = m.Email_Address,
PhoneNumber = m.Telephone_No
};
我正在使用此LINQ
查询来检索db中的选定列。它以降序
答案 0 :(得分:0)
听起来这里的问题是下游,即消费模型。特别是,它听起来像是期待一个 N
,而不是对它们的查询。所以...您可能希望在查询中添加.SingleOrDefault()
,.FirstOrDefault()
,.Single()
或.First()
(具体取决于您的意图)。例如:
var query = from m in db.Customers
orderby m.a descending
select new Get_Complaint_Form_Sub
{
CustomerFullName = m.a,
Email = m.Email_Address,
PhoneNumber = m.Telephone_No
};
var model = query.FirstOrDefault();
更一般的说明:IQueryable<T>
通常是待处理的查询 - 它尚未执行。大多数时候,你在谈论模型,你想要谈论严格的数据;因此,如果您尝试表示某些 N
,则应该使用.ToList()
或.ToArray()
来评估查询并填充列表/数组。< / p>
答案 1 :(得分:0)
作为suggested by Marc,问题不在于您的Linq查询,而在于您的MVC视图。您发布的错误消息告诉您,您的视图(即您的.cshtml
文件)期望一种类型,但您将另一种类型传递给它。看起来你犯了传递枚举值而不是单个值的常见错误。您的解决方案是:
Single()
,`First()等IEnumerable<T>
代替T
,并更新代码以便相应地处理。