Написание метода, который выбирает все строки и столбцы таблицы, заданные с использованием Entity Framework - PullRequest
0 голосов
/ 13 января 2019

Мне нужно написать общий метод, который возвращает все столбцы и строки (всю таблицу), и он должен быть общим, поэтому он должен работать с каждой таблицей, которую вы передаете в качестве аргумента.

Например, в базе данных есть таблица dbo.Media, и метод должен принимать ее в качестве аргумента (какова самая важная часть вопроса) и возвращать что-то, что можно использовать в качестве альтернативы select * from dbo.media оно должно быть общим, поэтому всякий раз, когда я создаю новую таблицу, я передаю имя методу, и он выполняет свою работу.

Ответы [ 2 ]

0 голосов
/ 13 января 2019

Как то так .. Нужно предоставить класс или использовать динамический

    public T[] ActionContext<T>(sql)
    {
        using (var db = new ActionContext())
        {
            return  db.Database.SqlQuery<T>(sql).ToArray();
        }
    }
0 голосов
/ 13 января 2019

Можете ли вы написать этот метод в классе DbContext?

Тогда вы могли бы написать что-то вроде отдельного файла нового класса (например, ActionContextExtensions.cs или что-то в этом роде):

public partial class ActionContext : DbContext
{
    public IEnumerable<T> SelectAll<T>() where T: class
    {
        return this.Set<T>().AsEnumerable();
    }
}

Возвращает тип в соответствии с общим параметром, поэтому вы можете сказать что-то вроде:

var result = db.SelectAll<Employee>()

или

var result = db.SelectAll<Customer>()

или

var result = db.SelectAll<Book>()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...