【发布时间】:2016-10-24 21:16:43
【问题描述】:
我正在尝试使用 LINQ lambda 表达式从 SQL Server 2014 获取数据,这是我的项目的要求。但是由于我是 LINQ 的新手,我认为我在这里的代码做错了,我得到了一个错误。
我只能获取一行而不会出现任何错误,但是如果我设置条件来获取多行,则会出错。
这是我的代码 - 这是存储库类:
public DettagliModel GetByIdDoc(int id)
{
using (var dbCtx = new USDevEntities())
{
var dettagli = dbCtx.Dettaglis.Where(x => x.IDDoc == id);
if (dettagli != null)
{
return ConvertTo(dettagli); // Getting error here
}
else
{
return null;
}
}
}
public DettagliModel ConvertTo(Dettagli entity)
{
var model = Mapper.Map<DettagliModel>(entity);
return model;
}
我收到此错误:
参数 1:无法从 'System.Linq.IQueryable' 转换为 'DAL.Service.Entity.Dettagli' Core.Service
这个错误是在编写代码时发生的,但如果我放在后面
.Where(x => x.IDDoc == id).FirstOrDefault();
然后错误消失。
请建议我该怎么做才能解决这个问题,因为我需要获取多行,所以我不能使用 FirstOrDefault() 方法。谢谢。
【问题讨论】:
-
你在使用自动映射器吗?
-
是的,我正在使用它。
-
我在你的问题中包含了这个标签,因为它是相关的
-
谢谢@octavioccl
标签: c# sql-server entity-framework linq automapper