3

实际上,我有在 Visual Studio 2010 中使用 Entity Framework 4.1 的代码。除了一件事之外,一切都运行良好:它似乎没有像一个[parameters.Add]老好人习惯做的那样“准备”参数。

这是我的代码:

using (MyEnterprisesEntities dataContext = new 
                             MyEnterprisesEntities(entityBuilder.ToString()))
{
         dataContext.CompanyInitializer(connection.Catalog,
                                        args.CompanyId,
                                        args.CompanyName);
}

因此,如果我公司的名称是O'Brian and sons(实际上它之前通过 WCF Web 服务传递,所以它更多地采用这种形式:)O\'Brian and sons,它似乎破坏了我的存储过程(包括允许 SQL 注入的可能性)。

有没有办法用 EDMX 避免这种情况,或者旧的方法更可靠?

4

1 回答 1

0

在调用存储过程之前,您不需要做任何事情。为了帮助您,请启动 SQL Profiler 以查看发送到数据库的参数是什么。我运行了一些测试,如果我使用像 O'Brian 这样的参数,框架会自动将查询中的引号加倍到 SQL。

于 2012-11-12T15:04:54.930 回答