3

我有 2 个 POCO 课程 - Contact 和 TrainingSeminar - 使用 EF5 加入了多对多关系

在联系人 odata 控制器中,我希望能够返回联系人注册的 TrainingSeminars ......所以我有以下控制器方法

public IQueryable<TrainingSeminar> GetTrainingSeminars([FromODataUri] int key)
{
    var contact = _context.Contacts.Find(key);
    var seminars = contact.TrainingSeminars.ToList();
    return seminars as IQueryable<TrainingSeminar>;
}

当我在 Visual Studio 中调试时,返回对象“研讨会”有 2 个项目,但在 Fiddler 中出现以下错误:

“'ObjectContent`1' 类型无法序列化内容类型 'application/json....”的响应正文....“消息”:“无法序列化 null 'feed'

4

1 回答 1

4

从您的代码中,seminars是 a List<T>,因此是最后一行

return seminars as IQueryable<TrainingSeminar>;

将始终为 null,因为List<T>未实现IQueryable<T>. 你应该使用,

return seminars.AsQueryable();

反而。

于 2013-04-17T18:21:12.737 回答