Куда идет пользовательский SQL-оператор в проекте, связанном с первым объектом? - PullRequest
0 голосов
/ 25 апреля 2018

Куда направляется пользовательский оператор sql в проекте с кодом первой сущности?

using (var context = new BloggingContext()) 
{ 
    var blogs = context.Blogs.SqlQuery("SELECT * FROM dbo.Blogs").ToList(); 
}

Неправильно размещать его в контроллере. Так может в классе IdentityModel.cs?

1 Ответ

0 голосов
/ 25 апреля 2018

Одним из сильных преимуществ структуры сущностей является то, что вам редко нужно больше использовать строки SQL. Недостаток строк в том, что они не могут быть проверены компилятором и поэтому подвержены ошибкам, особенно после изменения базы данных.

Если бы вы разработали свои классы в соответствии с Соглашениями Entity Framework Code First , ваше утверждение будет выглядеть так:

using (var dbContext = new BloggingContext)
{
    // get all Blogs (note: very unusual!)
    var blogs = dbContext.Blogs.ToList();
}

Иногда вам нужно явно использовать инструкцию SQL, например, при вызове хранимой процедуры. Вы можете использовать объект DbContext.Database:

using (var dbContext = new BloggingContext)
{
    string sqlCommand = ...
    Database database = dbContext.Database;
    database.ExecuteSqlCommand(sqlCommand, <parameters>);
}

Database.ExecuteSqlCommand использует традиционный метод запроса баз данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...