如何获得在LINQ to实体阵列?

var sites = from country in db.Countries select new SitiesViewByUser() { Country = country.Title, City = country.Cities .Select(m => m.Title).ToArray() };

市 - 数组的字符串。

我需要得到阵列Cities.Title

这样的代码:

foreach(var item in sites)

得到这个错误:

LINQ对实体表达不能识别方法“System.String [] ToArray的[字符串](System.Collections.Generic.IEnumerable` 1 [System.String])”,所以它不能被转换成表达式存储。

--------------解决方案-------------

您应该能够投射到一个匿名类型,然后使用ToArray()一旦你回到在LINQ to对象的土地使用AsEnumerable()

var sites =
(from country in db.Countries
select new
{
Country = country.Title,
Cities = country.Cities.Select(m => m.Title)
})
.AsEnumerable()
.Select(country => new SitiesViewByUser()
{
Country = country.Title,
City = country.Cities.ToArray()
};

问题是, ToArray()根本就没有对LINQ的定义实体IQueryable提供商(这将是在SQL相当于电话吗?)。 因此,你必须抓住你的结果,切换到LINQ到对象, 然后您可以根据需要兑现他们。

分类:实体框架 时间:2015-03-15 人气:0
本文关键词: 实体框架,LINQ到实体
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.669 (s). 10 q(s)