RelationalQueryableExtensions.FromSqlRaw<TEntity> 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 SQL sorgusunu temel alan bir LINQ sorgusu oluşturur.
public static System.Linq.IQueryable<TEntity> FromSqlRaw<TEntity> (this Microsoft.EntityFrameworkCore.DbSet<TEntity> source, string sql, params object[] parameters) where TEntity : class;
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>
IQueryable<T> Ham SQL sorgusunun temeli olarak kullanılacak bir (genellikle bir DbSet<TEntity>).
- sql
- String
Ham SQL sorgusu.
- parameters
- Object[]
Parametrelere atanacak değerler.
Döndürülenler
IQueryable<T> Ham SQL sorgusunu temsil eden bir sorgu.
Açıklamalar
Veritabanı sağlayıcısı sağlanan SQL üzerinde oluşturmayı destekliyorsa, LINQ işleçlerini kullanarak ham SQL sorgusunun üzerine oluşturabilirsiniz: context.Blogs.FromSqlRaw("SELECT * FROM Blogs").OrderBy(b => b.Name)
.
SQL kabul eden herhangi bir API'de olduğu gibi, SQL ekleme saldırısına karşı koruma sağlamak için herhangi bir kullanıcı girişini parametreleştirmek önemlidir. SQL sorgu dizesine parametre yer tutucuları ekleyebilir ve ardından parametre değerlerini ek bağımsız değişkenler olarak sağlayabilirsiniz. Sağladığınız tüm parametre değerleri otomatik olarak öğesine DbParameterdönüştürülür.
Ancak, hiçbir zaman doğrulanmamış kullanıcı tarafından sağlanan değerlerle birleştirilmiş veya ilişkilendirilmiş dizeyi ($""
) bu yönteme geçirmeyin. Bunu yapmak uygulamanızı SQL ekleme saldırılarına maruz bırakabilir. İlişkili dize söz dizimini kullanmak için parametresini kullanmayı FromSql<TEntity>(DbSet<TEntity>, FormattableString) göz önünde bulundurun.
Bu aşırı yükleme örnekleri parametre değerleri olarak da kabul DbParameter eder. Konumsal yer tutucuları yukarıdaki{0}
() gibi kullanmaya ek olarak, adlandırılmış yer tutucuları doğrudan SQL sorgu dizesinde de kullanabilirsiniz.
Daha fazla bilgi ve örnek için bkz. EF Core ile ham SQL komutlarını yürütme .
Şunlara uygulanır
Entity Framework