我正在使用oData控制器开发WebApi自助主机应用程序。 我有一些基本控制器与方法get
public class ODataControllerBaseClientFilter<T> : ODataControllerBase<T> where T : class, IClientId, new()
{
public ODataControllerBaseClientFilter(IDataService<T> service) : base(service)
{
}
public override IQueryable<T> Get(string query = null)
{
var a = base.Get(query).ToArray();
return base.Get(query);
}
}
将EF实体映射到数据库时出错,因此如果我使用代码执行查询
var a = base.Get(query).ToArray();
EF将正确生成异常并向客户端返回错误。
但是,如果我将删除此行并返回IQuerible对象,那么没有任何异常,客户端没有任何结果!我该如何解决这个问题?
UPD:错误文本
{“无法确定类型的复合主键排序 'Lk.Search.Data.Models.ReportClient'。使用ColumnAttribute(请参阅 http://go.microsoft.com/fwlink/?LinkId=386388)或HasKey方法 (见http://go.microsoft.com/fwlink/?LinkId=386387)指定一个 订购复合主键。“}
UPD2:我使用jquery ajax从oData服务获取数据(用于测试我只是使用来自浏览器的get请求)