Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.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# 运行聚合函数,然后更新该实体_C#_Sql Server_Entity Framework_Stored Procedures - Fatal编程技术网

C# 运行聚合函数,然后更新该实体

C# 运行聚合函数,然后更新该实体,c#,sql-server,entity-framework,stored-procedures,C#,Sql Server,Entity Framework,Stored Procedures,因此,我的Microsoft SQL Server 2008数据库中有以下存储过程: CREATE PROCEDURE UpdateTotalPartID @PartID bigint = 1 AS BEGIN SET NOCOUNT ON; DECLARE @Total int SELECT @Total = SUM(NoOfItems) FROM dbo.Location WHERE PartID = @PartID; UPDATE dbo.StockControl SET

因此,我的Microsoft SQL Server 2008数据库中有以下存储过程:

CREATE PROCEDURE UpdateTotalPartID 

@PartID bigint = 1
AS

BEGIN

SET NOCOUNT ON;
DECLARE @Total int

SELECT @Total = SUM(NoOfItems) FROM dbo.Location WHERE PartID = @PartID;
UPDATE dbo.StockControl
    SET Quantity = @Total
    WHERE PartID = @PartID;
END
GO

因此,除了使用存储过程,是否有一种方法可以让我只使用
DbContext
中的
SUM
聚合函数来更新
StockControl.Quantity
,然后执行
DbContext.SaveChanges()

请看,其中的共识是“不,他们不应该”
var result=db.yourtentity.Where(o=>o.PartID==somePartId)。选择(g=>new{total=g.Sum(i=>i.NoOfItems)})您可以计算成本,然后用结果更新其他表。我可以这样做,但在我的应用程序中,我只有一个位置的数据条目,他们可以在其中输入PartID、项目数等。但它不会通过父实体。我需要单独更新父实体,我希望一次就可以完成。没有SQL数据库——SQL只是结构化查询语言——许多数据库系统都使用这种语言,但它不是数据库产品。很多东西都是特定于供应商的,所以我们确实需要知道您使用的是什么数据库系统(以及哪个版本)。。。。(请相应地更新标记)这实际上是实体框架的问题,而不是SQL本身。我只是想知道如何在EF中使用MS SQL聚合函数