Я пытаюсь получить данные из представления в модель, используя Entity 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'
Почему я получаю эту ошибку?