Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .net临时表问题_C#_Sql_Asp.net_Entity Framework Core_.net 3.0 - Fatal编程技术网

C# .net临时表问题

C# .net临时表问题,c#,sql,asp.net,entity-framework-core,.net-3.0,C#,Sql,Asp.net,Entity Framework Core,.net 3.0,我得到了一个c#.net核心项目,其中有一个名为传感器的模型 public class Sensor { public int Id { get; set; } public long timestamp { get; set; } [Display(Name = "Country")] public string country { get; set; } [Display(Name = "Region")]

我得到了一个c#.net核心项目,其中有一个名为传感器的模型

public class Sensor
{
    public int Id { get; set; }
    public long timestamp { get; set; }
    [Display(Name = "Country")]
    public string country { get; set; }
    [Display(Name = "Region")]
    public string region { get; set; }
    [Display(Name = "Emitter")]
    public string emitter { get; set; }
    [Display(Name = "Value")]
    public string value { get; set; }
}
我需要获得以下数据:

国家和地区以外的组合(称为标记)及其出现次数。 在该标记上,添加发射器并分别计算引用数

例:

美国南部-1000

美国南部传感器01-700

美国。南部。传感器02-300

加拿大北部-1500

加拿大。北。传感器01-1250

加拿大。北。02-250

我最初的想法是使用和temp表来保存值,但它不起作用

CREATE TABLE _Results (Tag Varchar(150), Total Int)

INSERT INTO[_Results] (Tag, Total)"  
SELECT country  '.'  region AS Tag, COUNT() AS Total
FROM Sensor
GROUP BY country, region

INSERT INTO[_Results](Tag, Total)
SELECT country  '.'  region  '.'  emitter AS Tag, COUNT() AS Total
FROM Sensor
GROUP BY country, region, emitter

SELECT * FROM _Results

DROP TABLE _Results
但是我不能让它工作


有人能帮我吗?内存使用解决方案不可用,因此我使用了SQL和Microsoft.EntityFrameworkCore,不需要临时表

SELECT country + '.' + region AS Tag, '' as Emitter, COUNT() AS Total
FROM Sensor
GROUP BY country, region
UNION
SELECT country + '.' + region AS Tag, Emitter, COUNT() AS Total
FROM Sensor
GROUP BY country, region, emitter
为标记、发射器和总数创建实体。 我们称之为统计。 在DBContext中声明一个dbset

public virtual DbSet<Statistic> Statistics { get; set; }

sql是以字符串形式保存的上述sql查询。

什么不起作用?欢迎使用SO!正如@corradolab所指出的,如果您明确指出哪些地方不起作用,以及您已经采取的故障排除步骤,那么社区将能够更好地帮助您。查看此链接了解更多信息-。我无法使用entityframework详细说明对数据库的查询,以获取正确的数据并将其传递给视图。所以,我想在上面的sql代码中使用temp表,但是我不能让它做任何事情。根据我的研究,.NET在处理临时表时效果不太好,所以我想知道是否有其他解决方案或方法可以让它工作。还有一件事,错误消失了,但是查询没有返回正确的值``我在中创建了一个foreach循环来检查查询结果,它返回了以下内容:Tag=0 Emitter=Total=1 Tag=0 Emitter=Total=2 Tag=0 Emitter=Total=4 Tag=0 Emitter=sensor01 Total=2 Tag=0 Emitter=sensor01 Total=4 Tag=0 Emitter=sensor02 Total=2 Tag=0 Emitter=sensor03 Total=1I检查了数据库中,表中的值已更正。如果发现问题,请在sql“country+”.+区域中,使用| |而不是+
    query = context.Statistics
    .FromSql(sql)
    .AsNoTracking();