C# 从动态/编程命名的列名中获取字段,并使用EF求和
今天我在这里做了: 我引用它是因为这个问题与它非常相似 我想从特定列中获取所有int值,求和并返回值。。。 我该怎么做 例如:C# 从动态/编程命名的列名中获取字段,并使用EF求和,c#,entity-framework,entity-framework-6,c#-5.0,C#,Entity Framework,Entity Framework 6,C# 5.0,今天我在这里做了: 我引用它是因为这个问题与它非常相似 我想从特定列中获取所有int值,求和并返回值。。。 我该怎么做 例如: string column_name = "Col1"; int meterID = 6; 作为旧方法:“如果您有一个类,请从MeterID=MeterID;的表名中选择SUM(列名)” public class TableName { public int MeterId { get; set; } public int ColumnName {
string column_name = "Col1";
int meterID = 6;
作为旧方法:“如果您有一个类,请从MeterID=MeterID;的表名中选择SUM(列名)”
public class TableName
{
public int MeterId { get; set; }
public int ColumnName { get; set; }
}
和DbContext
public class MyDbContext : DbContext
{
public IDbSet<TableName> TableName { get; set; }
}
“例子”是什么意思?你试过什么?我想用EF求一列数据的和。我想用变量指定列名。这就是我想要做的。tSQL是一个需要理解的老例子。我想用EF来做。谢谢当您可以使用lambda时,为什么要使用变量指定列?lambda是什么?我没有InfoThank的回复,但是这个方法对我来说很简单:你也能给出一个这个方法的例子吗?这在实体框架中是不可能的,你不能使用反射来创建这样的查询。EF看到的是
.Where().Sum()
部分,然后它会将其转换为SQL来查询数据库。另一种选择是使用常规的SQL查询,但是EF的全部用途都不复存在了。
public int GetSum(int meterId)
{
return context.TableName.Where(x => x.MeterId == meterId).Sum(x => x.ColumnName);
}