RelationalDatabaseFacadeExtensions.SqlQueryRaw<TResult> 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.
Veritabanı sağlayıcısı tarafından yerel olarak desteklenen bir skaler türün sonuç kümesini döndüren ham SQL sorgusunu temel alan bir LINQ sorgusu oluşturur.
public static System.Linq.IQueryable<TResult> SqlQueryRaw<TResult> (this Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade databaseFacade, string sql, params object[] parameters);
static member SqlQueryRaw : Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade * string * obj[] -> System.Linq.IQueryable<'Result>
<Extension()>
Public Function SqlQueryRaw(Of TResult) (databaseFacade As DatabaseFacade, sql As String, ParamArray parameters As Object()) As IQueryable(Of TResult)
Tür Parametreleri
- TResult
Parametreler
- databaseFacade
- DatabaseFacade
DatabaseFacade bağlam için.
- sql
- String
Ham SQL sorgusu.
- parameters
- Object[]
Parametrelere atanacak değerler.
Döndürülenler
IQueryable<T> Ham SQL sorgusunu temsil eden.
Açıklamalar
Bu yöntemi veritabanı sağlayıcısı tarafından yerel olarak desteklenmeyen bir dönüş türüyle kullanmak için yöntemini kullanın DefaultTypeMapping<TScalar>(Action<TypeMappingConfigurationBuilder<TScalar>>) .
Döndürülen IQueryable<T> , daha karmaşık sorgular oluşturmak için LINQ kullanılarak oluşturulabilir.
Bu yöntemin bir işlem başlatmadığını unutmayın. Bu yöntemi bir işlemle kullanmak için önce veya UseTransactionçağrısında bulunurBeginTransaction(DatabaseFacade, IsolationLevel).
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 DbParameter'a dönüştürülür.
Ancak, hiçbir zaman doğrulanmamış kullanıcı tarafından sağlanan değerlere sahip birleştirilmiş veya ilişkilendirilmiş dizeyi ($""
) bu yönteme geçirmeyin. Bunun yapılması uygulamanızı SQL ekleme saldırılarına maruz bırakabilir. İlişkili dize söz dizimini kullanmak için parametresini kullanmayı SqlQuery<TResult>(DatabaseFacade, FormattableString) göz önünde bulundurun.
Daha fazla bilgi ve örnek için bkz. EF Core ile ham SQL komutlarını yürütme .
Şunlara uygulanır
Entity Framework