当使用 Entity Framework Core 和 C# 存在相等视图时,无法从基础表中删除记录

问题描述 投票:0回答:1

我在 ASP.NET C# 项目中使用 Entity Framework Core。

我在数据库中有一个名为

Sales
的表,以及一个名为
HotSales
的视图。

该视图仅包含

Sales
表中的热销商品 + 使用 JOIN 来自另一个表的更多信息。

DbContext
类中,我每个人都有一个
DbSet
对象。

我尝试从

Sales
表中删除一行,如下所示:

Sale sale = _context.Sales.FindAsync(id);
_context.Sales.Remove(sale as Sale);
_context.SaveChanges();

我收到有关

HotSales
类型的错误:

实体类型“HotSales”未映射到表,因此实体无法持久化到数据库。在“OnModelCreating”中调用“ToTable”将其映射到表。

为什么 Entity Framework Core 将

Sales
对象识别为
HotSales
?如何删除该行?

c# entity-framework entity-framework-core
1个回答
0
投票

问题可能出在上下文本身。您很可能已经创建了与 hotsales 表的 FK 关系。然后,删除时的某种级联效应无法正确传播到您可能定义的热销“表”。

请向我们展示 dbcontext 中的 和 实体定义的上下文代码。

仅凭这一点就可以告诉您出了什么问题。您的软件将视图视为表格。这就是您遇到的具体问题。

© www.soinside.com 2019 - 2024. All rights reserved.