Med*_*tor 0 linq-to-entities entity-framework
var sites =
from country in db.Countries
select new SitiesViewByUser()
{
Country = country.Title,
City = country.Cities
.Select(m => m.Title).ToArray()
};
Run Code Online (Sandbox Code Playgroud)
城市 - 数组字符串.
我需要得到数组Cities.Title
这段代码:
foreach(var item in sites)
Run Code Online (Sandbox Code Playgroud)
得到这个错误:
LINQ to Entities的表达式无法识别方法"System.String [] ToArray [String](System.Collections.Generic.IEnumerable` 1 [System.String])",因此无法将其转换为表达式存储.
您应该能够投射到匿名类型,然后使用ToArray()以下内容在Linq中返回对象之后使用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()
};
Run Code Online (Sandbox Code Playgroud)
问题是,ToArray()根本没有为Linq to Entities IQueryable提供程序定义(SQL中的等效调用是什么?).因此,您必须获取结果,切换到Linq to Objects,然后您可以根据需要实现它们.
| 归档时间: |
|
| 查看次数: |
4412 次 |
| 最近记录: |