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

时间:2013-11-17 18:38:56

标签: c# entity-framework syntax ef-migrations

使用实体框架迁移时,DbMigration基类has a Sql method which takes parameters in an anonymous object

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

        Sql(@"
                UPDATE dbo.SlideSets 
                SET Name = @Name, 
            ", false, new {
                Name = "Foo"
            }
        );

导致错误

System.Data.SqlClient.SqlException (0x80131904): Must declare the scalar variable "@Name"

这句话的正确语法是什么?

2 个答案:

答案 0 :(得分:9)

在这种情况下,MSSQL的标准生成器对匿名对象无效。您需要将参数直接放入命令中。或者你可以推导自己并处理它。

答案 1 :(得分:8)

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

I've created a ticket on their issue tracker to either do something about it or remove the api