Aracılığıyla paylaş


RelationalDatabaseFacadeExtensions.ExecuteSqlRaw Yöntem

Tanım

Aşırı Yüklemeler

ExecuteSqlRaw(DatabaseFacade, String, IEnumerable<Object>)

Verilen SQL'i veritabanında yürütür ve etkilenen satır sayısını döndürür.

ExecuteSqlRaw(DatabaseFacade, String, Object[])

Verilen SQL'i veritabanında yürütür ve etkilenen satır sayısını döndürür.

ExecuteSqlRaw(DatabaseFacade, String, IEnumerable<Object>)

Verilen SQL'i veritabanında yürütür ve etkilenen satır sayısını döndürür.

public static int ExecuteSqlRaw (this Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade databaseFacade, string sql, System.Collections.Generic.IEnumerable<object> parameters);
static member ExecuteSqlRaw : Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade * string * seq<obj> -> int
<Extension()>
Public Function ExecuteSqlRaw (databaseFacade As DatabaseFacade, sql As String, parameters As IEnumerable(Of Object)) As Integer

Parametreler

databaseFacade
DatabaseFacade

DatabaseFacade bağlam için.

sql
String

Yürütülecek SQL.

parameters
IEnumerable<Object>

SQL ile kullanılacak parametreler.

Döndürülenler

Etkilenen satır sayısı.

Açıklamalar

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 bir kez etkili olmayabileceği ve bir işlemde çalışmayabileceği için geçerlinin ExecutionStrategy bu yöntem tarafından kullanılmadığını unutmayın. açıkça ExecutionStrategy kullanılabilir ve SQL bir kez etkili değilse bir işlem de kullandığınızdan emin olun.

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ı ExecuteSql(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

ExecuteSqlRaw(DatabaseFacade, String, Object[])

Verilen SQL'i veritabanında yürütür ve etkilenen satır sayısını döndürür.

public static int ExecuteSqlRaw (this Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade databaseFacade, string sql, params object[] parameters);
static member ExecuteSqlRaw : Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade * string * obj[] -> int
<Extension()>
Public Function ExecuteSqlRaw (databaseFacade As DatabaseFacade, sql As String, ParamArray parameters As Object()) As Integer

Parametreler

databaseFacade
DatabaseFacade

DatabaseFacade bağlam için.

sql
String

Yürütülecek SQL.

parameters
Object[]

SQL ile kullanılacak parametreler.

Döndürülenler

Etkilenen satır sayısı.

Açıklamalar

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 bir kez etkili olmayabileceği ve bir işlemde çalışmayabileceği için geçerlinin ExecutionStrategy bu yöntem tarafından kullanılmadığını unutmayın. açıkça ExecutionStrategy kullanılabilir ve SQL bir kez etkili değilse bir işlem de kullandığınızdan emin olun.

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ı ExecuteSql(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