相关疑难解决方法(0)

如何在实体框架6(代码优先)中调用存储过程?

我是Entity Framework 6的新手,我想在我的项目中实现存储过程.我有一个存储过程如下:

ALTER PROCEDURE [dbo].[insert_department]
    @Name [varchar](100)
AS
BEGIN
    INSERT [dbo].[Departments]([Name])
    VALUES (@Name)

    DECLARE @DeptId int

    SELECT @DeptId = [DeptId]
    FROM [dbo].[Departments]
    WHERE @@ROWCOUNT > 0 AND [DeptId] = SCOPE_IDENTITY()

    SELECT t0.[DeptId]
    FROM [dbo].[Departments] AS t0
    WHERE @@ROWCOUNT > 0 AND t0.[DeptId] = @DeptId
END
Run Code Online (Sandbox Code Playgroud)

Department 类:

public class Department
{
    public int DepartmentId { get; set; }       
    public string Name { get; set; }
}

modelBuilder 
.Entity<Department>() 
.MapToStoredProcedures(s => 
s.Update(u => u.HasName("modify_department") 
               .Parameter(b => b.Department, "department_id") 
               .Parameter(b => …
Run Code Online (Sandbox Code Playgroud)

c# stored-procedures entity-framework

253
推荐指数
12
解决办法
42万
查看次数

使用实体框架更新时获取“插入”输出

SQL Server 使用“inserted”关键字提供插入和更新记录的输出。

我有一个代表处理队列的表。我使用以下查询来锁定记录并获取锁定记录的 ID:

UPDATE TOP (1) GlobalTrans
SET LockDateTime = GETUTCDATE()
OUTPUT inserted.ID
WHERE LockDateTime IS NULL
Run Code Online (Sandbox Code Playgroud)

这将输出一个名为 ID 的列,其中包含所有更新的记录 ID(在我的例子中为单个 ID)。如何将其转换为 C# 中的 EF 来执行更新并取回 ID?

c# t-sql entity-framework entity-framework-6

6
推荐指数
1
解决办法
2684
查看次数