RelationalQueryableExtensions.FromSqlRaw<TEntity>(DbSet<TEntity>, String, Object[]) Yöntem

Tanım

Ham bir sorguyu temel alan bir LINQ SQL oluşturur.

Veritabanı sağlayıcısı, sağlanan veri SQL destekliyorsa LINQ işleçleri: bağlamını kullanarak ham SQL sorgunun üzerinde oluşturabilirsiniz. Blogs.FromSqlRaw("SELECT * FROM Blogs"). OrderBy(b = > b.Name).

Api'lerde olduğu gibi SQL ekleme saldırısına karşı korumak için tüm kullanıcı girişlerini parametre SQL önemlidir. Parametre yer tutucularını sorgu dizesinde SQL ve ardından parametre değerlerini ek bağımsız değişkenler olarak belirtebilirsiniz. Temin edersiniz tüm parametre değerleri otomatik olarak bir değerine DbParameter dönüştürülür:

context.Blogs.FromSqlRaw("SELECT * FROM Blogs WHERE Name = {0}", userSuppliedSearchTerm)

Ancak, hiçbir zaman doğrulanmış kullanıcı tarafından sağlanan değerlere sahip bir bir concatenated veya i İ ilişkilendirme dizesi ($"") bu yönteme geçmeyin. Bunu yapmak, ekleme saldırılarına karşı SQL ortaya çıkarır. İlişkili dize söz dizimlerini kullanmak için kullanarak FromSqlInterpolated<TEntity>(DbSet<TEntity>, FormattableString) parametre oluşturabilirsiniz.

Bu aşırı yükleme, örnekleri DbParameter parametre değerleri olarak da kabul eder. Yukarıdaki () gibi konumsal yer tutucuları kullanmaya ek olarak, adlandırılmış yer tutucuları doğrudan sorgu {0} dizesinde SQL kullanabilirsiniz:

context.Blogs.FromSqlRaw("SELECT * FROM Blogs WHERE Name = @searchTerm", new SqlParameter("@searchTerm", userSuppliedSearchTerm))
public static System.Linq.IQueryable<TEntity> FromSqlRaw<TEntity> (this Microsoft.EntityFrameworkCore.DbSet<TEntity> source, string sql, params object[] parameters) where TEntity : class;
static member FromSqlRaw : Microsoft.EntityFrameworkCore.DbSet<'Entity (requires 'Entity : null)> * string * obj[] -> System.Linq.IQueryable<'Entity (requires 'Entity : null)> (requires 'Entity : null)
<Extension()>
Public Function FromSqlRaw(Of TEntity As Class) (source As DbSet(Of TEntity), sql As String, ParamArray parameters As Object()) As IQueryable(Of TEntity)

Tür Parametreleri

TEntity

öğelerinin source türü.

Parametreler

source
DbSet<TEntity>

Ham IQueryable<T> sorgunun temeli olarak kullanmak için SQL (genellikle bir DbSet<TEntity> ).

sql
String

Ham SQL sorgu.

parameters
Object[]

Parametrelere atanacak değerler.

Döndürülenler

IQueryable<TEntity>

Ham IQueryable<T> veri sorgusunu SQL.

Açıklamalar

Daha fazla bilgi için SQL ile ham EF Core komutlarını yürütme.

Şunlara uygulanır