如何向entity framework raw sql命令添加参数

Rod*_*Rod 11 c# entity-framework

如何将参数添加到以下Entity Framework原始SQL命令?例如,如果我想创建Id一个参数怎么办?

        using (var context = new NorthwindDBEntities())
        {
            context.Database.ExecuteSqlCommand(@"
                UPDATE dbo.Customers 
                SET Name = 'Test' WHERE Id = 1
            ");

        }
Run Code Online (Sandbox Code Playgroud)

Dam*_*ith 24

context.Database.ExecuteSqlCommand(@"UPDATE dbo.Customers 
            SET Name = 'Test' WHERE Id = @Id", new SqlParameter("Id", 1));
Run Code Online (Sandbox Code Playgroud)

在多个参数的情况下

context.Database.ExecuteSqlCommand(@"UPDATE dbo.Customers 
            SET Name = 'Test' WHERE Id = @id and Name =@name", 
               new SqlParameter("Id", id),
               new SqlParameter("name", fname));
Run Code Online (Sandbox Code Playgroud)


Ply*_*223 6

以下代码应该适用于这种情况:

    using (var context = new NorthwindDBEntities())
    {
        context.Database.ExecuteSqlCommand(@"
            UPDATE dbo.Customers 
            SET Name = 'Test' WHERE Id = {0}
        ", 1);
    }
Run Code Online (Sandbox Code Playgroud)

您还可以SqlParameter使用@id:

    using (var context = new NorthwindDBEntities())
    {
        context.Database.ExecuteSqlCommand(@"
            UPDATE dbo.Customers 
            SET Name = 'Test' WHERE Id = @id
        ", new SqlParameter("id", 1));
    }
Run Code Online (Sandbox Code Playgroud)