无法转换DataServiceOrderedQuery类型的对象以键入Microsoft.OData.Client.DataServiceCollection

时间:2017-07-11 22:33:00

标签: c# wcf wcf-data-services

我有一个名为Foos的数据库表,其中包含foo类型的记录。我有另一个名为Bars的表,其中包含bar类型的记录。我正在尝试在数据库中查询集合foos,并将该集合放在bar类型的记录中。

这样的事情:(foobar都是在第三方库中定义的,我可以检查元数据,但我无法改变它们。

public class bar (from metadata)
{
    public DataServiceCollection<foo> Foos { get; set; }
}

private void SaveSomeFoos()
{        
    var bar = Container.Bars.Where(x => x.someProperty == someRequirement).First();
    bar.Foos = Container.Foos.Where(x => x.someProperty == someRequirement);

    Container.SaveChanges();
}

当我尝试将第二个查询的结果分配给bar.Foos时,我收到错误

Unable to cast object of type DataServiceOrderedQuery to type Microsoft.OData.Client.DataServiceCollection

如何将Container.Foos.Where(x => x.someProperty == someRequirement)的结果分配给bar.Foos

1 个答案:

答案 0 :(得分:1)

bar.Foos = Container.Foos.Where(x => x.someProperty == someRequirement);

应更改为:

bar.Foos = new DataServiceCollection<Foo>(Container.Foos.Where(x => x.someProperty == someRequirement));

同时在https://msdn.microsoft.com/en-us/library/ee652823(v=vs.110).aspx处进行一次骚扰。