繁体   English   中英

实体框架:使用列名和值检索数据

[英]Entity framework: Retrieving data with column name and value

如果我使用:

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。

我尝试了各种不同的方法,但没有成功。

这个问题不是重复的,因为建议的问题及其答案没有太大帮助。 我希望这个问题可以重开。 我想分享自己的答案。

ToString()方法无法转换为相关的SQL。

尝试使用SqlFunctions.StringConvert(valToMatch)而不是valToMatch.ToString()

.ToString()

在Linq查询中不起作用。

安装.ToString()函数使用以下代码

SqlFunctions.StringConvert()

请参阅以下答复https://stackoverflow.com/a/3292773/3736442

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM