C产品在市场上有哪些独特优势?
- 内容介绍
- 文章标签
- 相关推荐
本文共计918个文字,预计阅读时间需要4分钟。
在EF Core 2.0中,一个新的特性是String interpolation在`FromSql`和`ExecuteSqlCommand`中的使用。这意味着你可以更方便地构建SQL查询字符串。
例如:csharpvar city=London;using (var context=CreateContext()){ context.Customers.FromSql($SELECT * FROM Customers WHERE City={city});}
看Interpolated Strings之前,让我们先看EF Core 2.0 的一个新的特性:String interpolation in FromSql and
ExecuteSqlCommand。
var city = "London"; using (var context = CreateContext()) { context.Customers .FromSql($@" SELECT * FROM Customers WHERE City = {city}") .ToArray(); }
SQL语句以参数化的方式执行,所以是防字符串注入的。
@p0='London' (Size = 4000) SELECT * FROM Customers WHERE City = @p0
一直认为Interpolated Strings只是String.Format的语法糖,传给FromSql的方法只是一个普通的字符串,已经移除了花括号,并把变量替换成了对应的值。FromSql获取不到变量信息,怎么实现参数化查询的呢? OK,让我们从头看起吧。
本文共计918个文字,预计阅读时间需要4分钟。
在EF Core 2.0中,一个新的特性是String interpolation在`FromSql`和`ExecuteSqlCommand`中的使用。这意味着你可以更方便地构建SQL查询字符串。
例如:csharpvar city=London;using (var context=CreateContext()){ context.Customers.FromSql($SELECT * FROM Customers WHERE City={city});}
看Interpolated Strings之前,让我们先看EF Core 2.0 的一个新的特性:String interpolation in FromSql and
ExecuteSqlCommand。
var city = "London"; using (var context = CreateContext()) { context.Customers .FromSql($@" SELECT * FROM Customers WHERE City = {city}") .ToArray(); }
SQL语句以参数化的方式执行,所以是防字符串注入的。
@p0='London' (Size = 4000) SELECT * FROM Customers WHERE City = @p0
一直认为Interpolated Strings只是String.Format的语法糖,传给FromSql的方法只是一个普通的字符串,已经移除了花括号,并把变量替换成了对应的值。FromSql获取不到变量信息,怎么实现参数化查询的呢? OK,让我们从头看起吧。

