【发布时间】:2015-12-13 11:29:41
【问题描述】:
我的应用程序的数据库模型是:
public class Restaurant
{
public int Id { get; set; }
.........
}
public class Review
{
public int Id { get; set; }
public string ReviewTitle { get; set; }
public string ReviewContent { get; set; }
public int UserId { get; set; }
public int RestaurantId { get; set; }
}
public ReviewHelpful
{
public int Id { get; set; }
public int ReviewId { get; set; }
public bool IsHelpfull { get; set; }
}
public ReviewImage
{
public int Id { get; set; }
public string ImageLink { get; set; }
public int ReviewId { get; set; }
}
任何表格中都没有导航属性。在ReviewHelpful 表中,如果用户发现此评论有帮助,则值为true,否则为false。
现在我想像这样创建一个视图模型:
public class ReviewViewModel
{
public int ReviewId { get; set; }
public int RestaurantId { get; set; }
public string ReviewTitle { get; set; }
public string ReviewContent { get; set; }
public int UserId { get; set; }
public int NumberOfHelpfull { get; set; }
public int NumberOfNotHelpfull { get; set; }
public List<string> ImagesLinks { get; set; }
}
因此,我想编写这样的查询:
var reviews = (from review in _foodTrackerContext.RestaurantReviews
join helpful in _foodTrackerContext.Helpfuls on review.Id equals helpful.ReviewId
join reviewPicture in _foodTrackerContext.ReviewPictures on review.Id equals reviewPicture.ReviewId
where review.ResturantId == 2
select new ReviewViewModel()
{
Id = review.Id,
RestaurantId = 2,
ReviewTitle = review.ReviewTitle,
ReviewContent = review.ReviewContent,
NumberOfHelpfull = .. ??,
NumberOfNotHelpfull = ... ??,
ImagesLinks = ... ???
}
我无法使用此查询检索 HelpfulYes、HelpfulNo、ImagesLinks。查找这些变量的查询是什么?。
此查询生成多行供单个审核,每个ReviewImage 和每个ReviewHelpful。
【问题讨论】:
-
还有什么问题?什么不工作?
-
无法检索
HelpfulYes、HelpfulNo和ImagesLinks。 -
请再次检查您的问题。例如,添加缺少的
class关键字。并使其保持一致:首先显示:public class ReviewViewModel,然后像这样使用它:select new RestaurantReviewViewModel(),但名称不同。
标签: entity-framework sql-server-2008 join