【发布时间】:2015-10-09 13:42:32
【问题描述】:
我尝试最小化一个 LINQ 查询,但尝试时出现错误。 Genkai_db 是一个实体框架实例,我查询 sql 表。
这是有效的:
public UNITY_DB_PRODEntities12 Genkai_db = new UNITY_DB_PRODEntities12();
public List<string[]> Query_FpacInactif()
{
List<string[]> li = new List<string[]>();
List<string> u = Genkai_db.final_full_data
.Where(x => x.FPAC_TimeStamp > 100)
.Select(x => x.computername)
.ToList<string>();
foreach (string a in u)
{
string[] Sarray = new string[] { a, "FPAC" };
li.Add(Sarray);
}
return li;
}
在另一个类似的函数中,我尝试重构为一行:
public List<string[]> Query_McAfeeConsolidation()
{
List<string[]> li = (Genkai_db.Consolidation_McAfee
.Select(x => new string[] { x.computername, "McAfee" }))
.ToList();
return li;
}
最后一个函数因错误而失败:
无法在查询中初始化“System.String []”类型的数组 结果。使用'System.Collections.Generic.List`1 [System.String]' 而是。
PS:在询问之前我尝试了很多东西,甚至使用List<string> 而不是string[],但没有任何效果。
【问题讨论】:
-
如果您能向我们展示您的输入对象的样子,以及您想要得到的结果究竟是什么,将会很有帮助
-
请提供
Consolidation_McAfee的类型信息。 -
为什么第一种方法选择
Genkai_db.final_full_data而第二种方法选择Genkai_db.Consolidation_McAfee?这是一个错误吗? -
编辑了它的实体框架实例
-
Linq to Sql 查询被解释并转换为 sql。 Linq to Sql 不知道如何获取您的查询并将其转换为返回可枚举字符串数组的 sql 查询。这是您必须解决的限制。