#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
Комментариев нет:
Отправить комментарий