OK、これは私の 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 を使用すると、このような奇妙な問題が常に発生します。それを使う価値はほとんどありません。