Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架:检索具有列名和值的数据_C#_Entity Framework - Fatal编程技术网

C# 实体框架:检索具有列名和值的数据

C# 实体框架:检索具有列名和值的数据,c#,entity-framework,C#,Entity Framework,如果我使用: 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

如果我使用:

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 GetDataFrom()
{
var result=新列表();
使用(var context=newmaintentities())
{
var matches=context.data.Where(s=>s.Width==500.ToList();
AddRange(matches.Select(t=>t.Key));
}
返回结果;
}
它给了我完美的结果,但我想使用一种可以使用列名和值的方法,如下所示:

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;
}
private List GetDataFrom(string columnName,int valToMatch)
{
var result=新列表();
使用(var context=newmaintentities())
{
var propertyInfo=typeof(data).GetProperty(columnName).Name;
var matches=context.data
.式中(p=>p.propertyInfo==valToMatch);
AddRange(matches.Select(t=>t.Key));
}
返回结果;
}
这个方法显然不起作用,所以我怎么能做同样的事情呢? 我使用的是SqlLite,所以给出的一些答案不适用。 整个问题是使用属性的方式不对

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

这个问题不是重复的,因为建议的问题及其答案没有多大帮助。 我希望这个问题可以重新讨论。 我自己也找到了一个我想分享的答案

.ToString()
在Linq查询中不起作用

在.ToString()函数中,请使用以下命令

SqlFunctions.StringConvert()
请看下面的答案

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


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

您不能以这种方式使列名变为变量,原因与您不能在普通sqlIm中从@tablenameparam写入
SELECT*相同,其中@columnnameparam=@valueparam
不明白为什么这样做,您使用的是哪种实体模型?我的方法是在表中查找我想要的值(名称是列,值是您试图获取的值)