Entity Framework: получение данных с именем и значением столбца - PullRequest
0 голосов
/ 02 ноября 2018

Если я использую:

private List<string> GetDataFrom()
{
    var result = new List<string>();
    using (var context = new mainEntities())
    {
        var matches = context.data.Where(s => s.Width == 500).ToList();
        result.AddRange(matches.Select(t => t.Key));
    }
    return result;
}

Это дает мне идеальные результаты, но я хочу использовать метод, в котором я могу использовать имя и значение столбца, например:

private List<string> GetDataFrom(string columnName, int valToMatch)
{
    var result = new List<string>();
    using (var context = new mainEntities())
    {
        var propertyInfo = typeof(data).GetProperty(columnName).Name;
        var matches = context.data
                             .Where(p => p.propertyInfo == valToMatch);
        result.AddRange(matches.Select(t => t.Key));
    }
    return result;
}

Этот метод, очевидно, не работает, так как я могу сделать то же самое? Я использую SqlLite, поэтому некоторые ответы не применяются. Вся проблема заключается в неправильном использовании propertyInfo.

Я пробовал разные подходы, но безуспешно.

Этот вопрос не является дубликатом, поскольку предложенные вопросы и ответы на них мало помогают. Мне нравится, что этот вопрос будет вновь открыт. Я сам нашел ответ, которым хотел бы поделиться.

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

Метод ToString () не может быть переведен в соответствующий SQL.

Попробуйте использовать SqlFunctions.StringConvert (valToMatch) вместо valToMatch.ToString ()

0 голосов
/ 02 ноября 2018
.ToString()

Не работает внутри запроса Linq.

Inststed of .ToString () Функция Используйте следующее

SqlFunctions.StringConvert()

СМОТРИТЕ СЛЕДУЮЩИЙ ОТВЕТ https://stackoverflow.com/a/3292773/3736442

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