好的,这是我的 RIA 服务数据合同:
public class ZipLocationDC
{
[Key]
public String ZipCode { get; set; }
[Editable(false)]
public double Latitude { get; set; }
[Editable(false)]
public double Longitude { get; set; }
}
我有数百个与此非常相似的其他实体(即,仅具有基本类型属性的简单类)。由于某种原因,有了这个,我得到以下异常:
名为“GetZipLocation”的操作不符合所需的签名。返回类型必须是实体或复杂类型、实体或复杂类型的集合或预定义的可序列化类型之一。
我究竟做错了什么?我不知道你为什么需要它,但这是我的服务操作:
[Invoke]
public ZipLocationDC GetZipLocation(String a_strZipCode)
{
var zipCodes = from zipCode in ObjectContext.ZipCodes
where zipCode.Code == a_strZipCode
select zipCode;
if (!zipCodes.Any())
return null;
var dLatitude = zipCodes.Average(i => i.Latitude);
var dLongitude = zipCodes.Average(i => i.Longitude);
return new ZipLocationDC
{
ZipCode = a_strZipCode,
Latitude = dLatitude,
Longitude = dLongitude
};
}
我对 RIA 服务感到非常厌倦。我也直接使用 WCF,但是使用 RIA,我总是遇到类似这样的奇怪问题。它几乎不值得使用。