Страницы

Поиск по вопросам

среда, 12 февраля 2020 г.

Entity Framework прямой запрос без контекста базы

#c_sharp #net #aspnet_mvc #entity_framework


Возможно ли сделать запрос используя средства EF не описывая при этом контекст базы
данных, либо создав и описав его непосредственно в функции перед запросом?
    


Ответы

Ответ 1



Можно создать контекст и выполнить прямой запрос: public class Client { public int Id { get; set; } public string Name { get; set; } } public class Program { public static void Main() { var context = new DbContext("ConnectionString"); var xxx = context.Database.SqlQuery("select Id, Name from Clients").ToList(); } } В нём не будет DBSet'ов, но запросы выполнять через SqlQuery и ExecuteSqlCommand можно. Но зачем использовать EF, если Вы не хотите использовать EF?

Ответ 2



Если вы не хотите описывать контекст, то вам и не нужны все приемущества шаблона единица работы с репозитарием реализуемым Entity Framework. Достаточно воспользоваться технологией ADO.NET (примеры кода) string connectionString = "Data Source=(local);Initial Catalog=Northwind;" + "Integrated Security=true"; // Provide the query string with a parameter placeholder. string queryString = "SELECT ProductID, UnitPrice, ProductName from dbo.products " + "WHERE UnitPrice > @pricePoint " + "ORDER BY UnitPrice DESC;"; // Specify the parameter value. int paramValue = 5; // Create and open the connection in a using block. This // ensures that all resources will be closed and disposed // when the code exits. using (SqlConnection connection = new SqlConnection(connectionString)) { // Create the Command and Parameter objects. SqlCommand command = new SqlCommand(queryString, connection); command.Parameters.AddWithValue("@pricePoint", paramValue); // Open the connection in a try/catch block. // Create and execute the DataReader, writing the result // set to the console window. try { connection.Open(); SqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { Console.WriteLine("\t{0}\t{1}\t{2}", reader[0], reader[1], reader[2]); } reader.Close(); } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.ReadLine(); } Ещё можете посмотреть в сторону LINQ to SQL

Комментариев нет:

Отправить комментарий