Seshu B Ответов: 1

Как получить записи путем динамической передачи нескольких имен столбцов ASP.NET MVC5


передавая записи привязки одного имени столбца, но я хочу получить записи, передавая несколько имен столбцов динамически с помощью entity framework

Что я уже пробовал:

public List<string> GetRecords(List<string> Columns,string tablename)
    {
        using (var Context = new MCPEntities())
        {
             string columnnames = string.Join(",", Columns);
            var Records = Context.Database.SqlQuery<string>("SELECT " + columnnames + " FROM " + tablename + " ").ToList();
            return Records.ToList();
        }
    }

Ehsan Sajjad

значит, вышесказанное не работает? какие-нибудь ошибки/исключения ?

Seshu B

Получение этой ошибки..
- Считыватель данных имеет несколько полей. Несколько полей не действительны для EDM примитивный тип или тип перечисления."

1 Ответов

Рейтинг:
1

F-ES Sitecore

Считыватель данных имеет более одного поля. Несколько полей не действительны для EDM примитивный тип или тип перечисления - поиск в Google [^]

Пожалуйста, сделайте фундаментальное исследование, прежде чем задавать вопрос.


Seshu B

искал, но не получил точного определения души

F-ES Sitecore

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

Seshu B

если я передаю имя одного столбца , то имя таблицы означает привязку
Но проблема заключается в том, что при передаче столбцов muliple имя таблицы не связывает записи

F-ES Sitecore

Да потому что это

Контексте.Базы данных.SqlQuery & lt;string>

это говорит .net, что он ожидает, что строка будет возвращена из запроса и сохранит эту строку в "записях". Когда у вас есть один возвращаемый столбец, это работает нормально. Если у вас есть два столбца, то у вас есть два фрагмента данных, так как же вы можете сопоставить два фрагмента данных (скажем, идентификатор и имя) с одной строкой? Вам нужно изменить тип возвращаемого значения (<string>) На что-то соответствующее возвращаемым данным.