RelationalQueryableExtensions.FromSqlRaw<TEntity>(DbSet<TEntity>, String, Object[]) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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.