我不知道我做错了什么。但是当我使用fromsqlraw时,当视图包含大量数据时,我似乎“从来没有”得到结果。
我有一个本地sql server,它可以查看链接服务器上的数据库。该视图包含一个从100.000个条目到大约30.000个条目的查询。
在我的代码中
builder.Entity<PpsDashboard.Models.Server.BigDataSetData>().HasNoKey();
builder.Entity<PpsDashboard.Models.Server.SmallDataSetData>().HasNoKey();
我在上下文中有dbset:
public DbSet<xxx> BigDataSetData
{
get;
set;
}
public DbSet<xxx> SmallDataSetData
{
get;
set;
}
以及两者的模型。
当运行第1行和第2行下面的三行时,可以工作,但是为大数据集获取数据的那一行永远不会返回错误或完成-小数据库包含10个条目:
var items = context.SmallDataSetData.AsQueryable();
var items2 = context.SmallDataSetData.FromSqlRaw("Select TOP 2 * from [dbo].[smallDataBase] where name like 'thomas'").ToList();
var books = context.BigDataSetData.FromSqlRaw("Select TOP 2 * from [dbo].[bigDataBase] where name like 'thomas'").ToList();
当从sqlraw运行时,它会调用对视图的整个调用还是仅仅获取所需的数据?链接服务器的物理位置是世界上另一个地方,在另一个大陆上,所以一般来说获取数据会有一点延迟。
/托马斯
1条答案
按热度按时间yuvru6vn1#
以下内容可以帮助您了解可能导致您找到根本原因的ef后台sql server查询执行:使用某种sql server探查器(sql server内置探查器)或新的azure datastudio探查器。