WCF Data Services 4.0を使用すると、階層データが返されません。私はEquipmentIdsのコレクションを持つEmployeeクラスを持っています。それらのEquipmentIdsはワイヤー上で失われています。ここに私のコードだ:odata v2で階層データを送信するにはどうすればよいですか?
public class ODataV2 : DataService<ODataV2Model>
{
public static void InitializeService(DataServiceConfiguration config)
{
config.UseVerboseErrors = true;
config.SetEntitySetAccessRule("*", EntitySetRights.AllRead);
config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
}
}
public class ODataV2Model
{
public ODataV2Model()
{
Employees = new List<Employee>{
new Employee { Id = 1, Name="Doug", EquipmentIds = new List<Equipment> { new Equipment { Id = 1 },new Equipment { Id = 2 } }.AsQueryable()},
new Employee { Id = 2, Name= "George", EquipmentIds = new List<Equipment> {new Equipment { Id = 3}, new Equipment { Id = 5} }.AsQueryable() }
}.AsQueryable();
}
public IQueryable<Employee> Employees { get; private set; }
public IQueryable<Equipment> EquipmentIds { get; private set; }
}
[DataServiceKey("Id")]
public class Employee
{
public int Id { get; set; }
public string Name { get; set; }
public IQueryable<Equipment> EquipmentIds { get; set; }
}
[DataServiceKey("Id")]
public class Equipment
{
public int Id { get; set; }
}
私はそれでLinqPadを実行すると、私はこれを取得:
私は2のカウントとEquipmentIdsの両方のコレクションを持っている必要がありますが、私は、私は受け取りません0を持っていますエラーは発生しますが、データはクライアントに送信されません。
私はWCF Data Services v 5.0に切り替えましたが、.NET側で正常に動作しましたが、LinqPadを使用してクエリを実行できなくなりました。これがv 4.0で動作する方法はありますか?
もしそうでなければ、LinqPadをodata v3(WCF Data Services 5.0)を認識できるようにアップグレードする方法はありますか?
展開していますか? (何かのEmployees.Expand( "EquipmentIds")) – Pawel