如何将参数传递给DbMigration.Sql()方法

Geo*_*uer 14 c# syntax entity-framework ef-migrations

使用实体框架迁移时,DbMigration基类具有一个Sql方法,该方法接受匿名对象中的参数

我不能为我的生活弄清楚如何使用它.

        Sql(@"
                UPDATE dbo.SlideSets 
                SET Name = @Name, 
            ", false, new {
                Name = "Foo"
            }
        );
Run Code Online (Sandbox Code Playgroud)

导致错误

System.Data.SqlClient.SqlException (0x80131904): Must declare the scalar variable "@Name"
Run Code Online (Sandbox Code Playgroud)

这个陈述的正确语法是什么?

cin*_*net 9

在这种情况下,MSSQL的标准生成器对匿名对象不起作用.您需要将参数直接放入命令中.或者你可以派生出自己的并处理它.

  • 你什么意思?该参数的文档显式指定了类似`new {SampleArgument ="MyValue"}`的预期输入.我假设sql字符串的`@ Name`部分是错误的.这不是一个正确的假设吗?当时谈论的文件是什么? (2认同)

Geo*_*uer 8

我挖掘了EF源代码,似乎没有使用这个参数(或者更确切地说是MigrationOperation.AnonymousObject从它创建的属性)!

我已经在他们的问题跟踪器上创建了一张票,要么对它做一些事情要么删除api