我正在尝试使用实体LINQ / Lambda将视图中的数据捕获到模型中。但是,我无法调试出现的错误或发生错误的原因。
我有以下课程:
public class Item
{
public int Id {get;set;}
public string Name {get;set;}
public List<Review> Reviews {get;set;}
}
public class Review
{
public int Id {get;set;}
public int ItemId {get;set;}
public string Comment {get;set;}
}
并且我创建了一个视图以获取所有项目及其各自的评论:
Create View ItemReviewView AS
SELECT
i.Id AS [ItemId],
i.Name AS [ItemName],
r.Id AS [Id],
r.ItemId AS [TiedItemId],
r.Comment AS [Comment]
FROM Items i
LEFT JOIN Reviews r ON r.ItemId = i.Id
我对此视图具有的实体模型如下:
public class ItemReviewView
{
[Key]
public int ItemId { get; set; }
public string Name {get;set;}
public List<Review> reviews {get;set;}
}
...
//Within DatabaseContext class
public DbSet<ItemReviewView> ItemReviewView { get; set; }
但是,当尝试使用以下方法从视图中获取数据时:
List<Item> items = new List<Item>();
items = _ctx.ItemReviewView.Select(i => new ItemReviewView
{
Id = i.ItemId,
Name = i.Name
Reviews = i.reviews
.Where(r => r.TiedItemId == i.ItemId)
.Select(r => new Review
{
Comment = r.Comment
}).ToList()
}).ToList();
我收到错误消息:
无效的列名'ItemReviewView_ItemId']>
为什么会出现此错误?
我正在尝试使用实体LINQ / Lambda将视图中的数据捕获到模型中。但是,我无法调试出现的错误或发生错误的原因。我有以下课程:公共课程...
请定义ItemId为Review实体的外键。