我正在尝试将显示的各个部分及其位置列表从WCF数据服务投影到自定义类型中。这在Silverlight客户端的WCF数据服务中是可行的吗?有一些帮助here,但它没有显示返回列表和简单字符串。
目前我得到了"NotSupportedException:不支持使用表达式d.Base.Title构造或初始化UserQuery+Info类型的实例“。如果你能告诉我如何在这个语法中展开位置(我知道Displays.Expand(" Locations ")),或者我是否需要它,那就太好了。
LINQPad代码段
var displays = from d in Displays.Where(d => d.Id == 3136)
select new Info
{
Name = d.Base.Title,
};
displays.Dump();
}
public class Info
{
private string name;
public string Name
{
get
{
return this.name;
}
set
{
this.name = value;
}
}
public IEnumerable<Location> locations;
public IEnumerable<Location> Locations
{
get{ return this.locations;}
set{ this.locations = value;}
}发布于 2011-05-21 05:12:51
问题是,您实际上是在请求您的WCF服务器构造一些它不知道的类型。由于它无法执行此操作,因此您必须在您的计算机上自己执行此操作:
Displays
.Where(d => d.Id == 3136)
.AsEnumerable()
.Select(d => new Info { Name = d.Base.Title })这将在服务器上运行Where(),但在您的计算机上运行Select()。
https://stackoverflow.com/questions/6077517
复制相似问题