【发布时间】:2016-09-10 05:37:03
【问题描述】:
我正在调试以下代码,.ToList() 方法工作得非常好,最后一行抛出异常“至少一个对象必须实现 icomparable”:
var result = response.ToDataSourceResult(request);
这里发生了什么?
public DataSourceResult GetProveedores([System.Web.Http.ModelBinding.ModelBinder(typeof(WebApiDataSourceRequestModelBinder))]DataSourceRequest request,string group)
{
var domainContext = new PrincipalContext(ContextType.Domain);
var groupPrincipal = GroupPrincipal.FindByIdentity(domainContext, IdentityType.SamAccountName, group);
var listTmp = new List<Proveedores>();
List<Proveedores> ListReturn = new List<Proveedores>();
int count = 0;
foreach (var item in groupPrincipal.Members)
{
ListReturn.Add(new Proveedores { nameProveedor = item.SamAccountName, id=count, });
//ListReturn[count].nameProveedor.CompareTo(item.SamAccountName);
count++;
}
var response = ListReturn.OrderBy(p => p.nameProveedor).OrderBy(s => s.id).ToList();
var result = response.ToDataSourceResult(request);
return result;
}
【问题讨论】:
-
问题出在
var response = ...。错误在以下行中抛出,因为它可能导致查询枚举并且nameProveedor的类型没有实现IComparable。 -
如果
ToDataSourceResult是kendu-UIextension method mentioned in this post,那么我怀疑你的类Proveedores需要实现IComparable。