Jestem wielkim fanem używania nazwanych parametrów zamiast iniekcji parametrów opartych na łańcuchach. Jest bezpieczny i bezpieczny w przypadku większości form wstrzykiwania SQL. W starym ADO.NET utworzyłbym obiekt SqlCommand i kilka SqlParameters dla mojego zapytania.Podczas korzystania z DbSet <T> .SqlQuery(), jak używać nazwanych parametrów?
var sSQL = "select * from Users where Name = @Name";
var cmd = new SqlCommand(conn, sSQL);
cmd.Parameters.AddWithValue("@Name", "Bob");
cmd.ExecuteReader();
Teraz w Entity Framework, jak się wydaje, (na ten link), że cofnęła się proste stwierdzenie String.Format i wtrysku ciąg znowu: (uproszczony dyskusji)
MyRepository.Users.SqlQuery("Select * from Users where Name = {0}", "Bob");
Czy istnieje sposób używać nazwanych parametrów z klasą Entity Framework DbSqlQuery?
Gdzie jest to udokumentowane? A jakie formaty nazw są dopuszczalne w treści SQL? Czy to nie obsługuje stylu @name? –
@EricFalsken. Możesz zobaczyć w [tutaj w MSDN] (http://msdn.microsoft.com/en-us/library/system.data.objects.objectparameter.aspx), ** ten styl \ @name są obsługiwane **. – gdoron
Idealnie! Wielkie dzięki! –