我有以下两行代码,它们首先从查询中返回一个项目,然后使用第一个查询的值创建另一个项目。我想将这两行合并为一个陈述。请记住,在某些情况下,第一个查询的结果可能为空。
var x = uow.Profiles.FindByID(profileId).Competitor;
return Json(new Organisation() { Name = x.Name, ID = x.ID, IsClient = x.IsClient, IsDeleted = x.IsDeleted }, JsonRequestBehavior.AllowGet);
答案 0 :(得分:0)
如果您担心这一点,也许可以添加空检查:
var result = uow.Profiles.FindByID(profileId);
if(result != null)
{
var competitor = result.Competitor;
return Json(new Organisation() { Name = competitor.Name, ID = competitor.ID, IsClient = competitor.IsClient, IsDeleted = competitor.IsDeleted }, JsonRequestBehavior.AllowGet);
}
return null; // or whatever you can default to
确定问题究竟是什么以及LINQ如何提供帮助(您没有必要 使用它),只需确保您的代码可读。
答案 1 :(得分:-1)
编辑:最后使用IEnumerable(我假设个人资料是一个)
ouw.Profiles.Single(p => p.Id == profileId).Select
(p => Json(
new Organisation()
{
Name = p.Competitor.Name,
ID = p.Competitor.ID,
IsClient = p.Competitor.IsClient,
IsDeleted = p.Competitor.IsDeleted
},
JsonRequestBehavior.AllowGet)
);