【发布时间】:2022-01-17 17:36:58
【问题描述】:
我有一个想要使用的 SQL 视图,并将其放入 ASP.NET MVC 项目的 C# 列表中,以便我可以对该列表执行查询。问题是我从视图中得到了错误的数据。
当我尝试从 SQL 视图中获取所有数据时,计数是正确的,但有些行显示了多次,有些行就消失了。当我尝试对该视图中的数据执行一些逻辑时,也会发生同样的事情。
[HttpGet]
[Route("Home/Testing/{godina}/{istorija}/{decursus_id}/{therapy_id}")]
public ActionResult Testing(string godina, string istorija, int decursus_id, string therapy_id)
{
List<v_as_stac_terapija_komercijalni> terapijaKomercijalniList = db.v_as_stac_terapija_komercijalni
.Where(x => x.godina == godina
&& x.istorija == istorija
&& x.decursus_id == decursus_id
&& x.therapy_id == therapy_id)
.ToList();
return View();
}
所以根据我的 SQL 视图中的数据和根据此操作中给出的参数,列表应该包含 3 个结果,计数为 3,但问题是我总是得到与此参数匹配的第一条记录 3 次,而不是获取真正的 3 条记录。
如有必要,我可以提供更多信息。谢谢
【问题讨论】:
-
可能您的实体的 PrimaryKey 错误。
-
首先:这是什么RDBMS?请添加相关标签!
-
第二:对来自 RDBMS 的视图使用 EF(我相信你是这样的)可能会很棘手。您的视图是否包含用于创建视图结果集的所有表的主键?如果不是 - 您可能会在读取数据时从 EF 获得 错误读数。
-
我使用 Microsoft SQL Server 2012。由于它是一个 sql 视图,并且它保存来自 5 个不同表的数据,因此它本身没有主键,因此其中一个中的主键存在问题生成此视图的表?
-
尝试
AsNoTracking或将您的实体定义为HasNoKey。
标签: c# sql-server asp.net-mvc linq