У меня есть запрос LINQ. Я пытаюсь свести к минимуму, но при попытке получить сообщение об ошибке. Genkai_db - это экземпляр Entity Framework, и я запрашиваю sql-таблицу.Refactorise Linq query
Это работает:
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;
}
Последняя функция завершилась с ошибкой:
Unable to initialize the array of type 'System.String []' in a query result. Use 'System.Collections.Generic.List`1 [System.String]' instead.
PS: Я пробовал много вещей, прежде чем спрашивать, используя List<string>
по телефону string[]
, но не hing работал в одной строке.
Было бы полезно, если бы вы могли показать нам, как выглядит ваш входной объект, и что именно вы пытаетесь получить в результате – pquest
Просьба предоставить информацию о типе 'Consolidation_McAfee'. –
Почему первый метод выбирает «Genkai_db.final_full_data», а второй - «Genkai_db.Consolidation_McAfee»? Это ошибка? –