我想要从多个表以服务纳税人数据到我的项目
问题描述:
想要从多个表到一个服务层数据,因为我有数据库逻辑为服务层写了我的项目我想要从多个表以服务纳税人数据到我的项目
“KeysPlus.Service .Models.QuoteModel'到'System.Collections.Generic.IEnumerable'。 存在明确的转换(您是否缺少演员?)
任何帮助都非常感谢!
public static IEnumerable<QuoteModel> GetJobQuotes(Login login, QuoteModel model)
{
using (var db = new KeysEntities())
{
var quotes = db.JobQuote.Where(x=> x.ProviderId == login.Id);
model = (from q in db.JobQuote
join j in db.Job on q.JobId equals j.Id
join p in db.Property on j.PropertyId equals p.Id
join a in db.Address on p.AddressId equals a.AddressId
select new QuoteModel
{
JobDescription=j.JobDescription,
QuoteAmount=q.Amount,
PropertyAddress= a.City
}).ToList();
return model;
}
}
答
您的命名model
方法这是一个单一QuoteModel
的参数,你想它的值设置为QuoteModel
集合。删除参数(你不使用它),并更改代码以
using (var db = new KeysEntities())
{
var quotes = db.JobQuote.Where(x=> x.ProviderId == login.Id);
IEnumerable<QuoteModel> model = (from q in db.JobQuote
....
}
答
你有一个模型实例:
QuoteModel model
,而您想将其设置为模型实例的集合 :
model = (from q in db.JobQuote
...
).ToList();
一个苹果不是一篮子苹果。所以你需要做两件事之一,这取决于你真正想要这种方法做什么...
返回一个模型?
如果您要从该列表中寻找特定的实例,那么您需要向该查询添加一个子句以返回该实例。像.First()
或.FirstOrDefault()
这样的方法可以做到这一点(或等效的.Single()
)。例如,如果你想它匹配特定值的情况下,它可能是这个样子:
model = (from q in db.JobQuote
...
).First(j => j.ID == someIdentifier);
其中当然someIdentifier
的是一些价值你有,你可以在查询中使用。也许model.ID
或类似的东西?取决于你想如何查询你的数据,我们不知道这里。但重点是,你需要返回一个模型,而不是很多模型。
此外,您需要将方法的返回类型更改为QuoteModel
,因为您只需返回该模型实例。
返回很多模型?
相反,如果你做想要返回多个模型,那么你不能把它们放在一个只包含一个模型的变量。只需直接返回值:
return (from q in db.JobQuote
...
).ToList();
(当然,那么你甚至不使用的model
变量,为什么需要它?)
不要改变你的问题,是无效有答案得到了。 –
@StephenMuecke,对不起。我刚刚更新,因为一些其他错误将基于David – Rajesh
提出的更改,然后附加您尝试的新代码和新的错误消息。但是你已经说过你想返回一个列表,所以使用'.First()'没有任何意义 - 返回一个单一的对象。 –