Je sais qu'il y a plusieurs autres articles sur cette exception mais aucun d'eux ne m'a aidé.Au moins un objet doit implémenter IComparable - travailler sur la machine locale mais pas sur le serveur
Chacune des 3 Solutions fonctionne sur ma machine locale mais pas sur Live-System/Sur le serveur. Lorsque le nombre de PackageViewModels a augmenté, la première solution a quitté le travail. - Mise en œuvre de la deuxième solution. Les utilisateurs ont ajouté deux éléments supplémentaires et la deuxième solution a également quitté le travail - Mis en œuvre troisième, qui n'a jamais travaillé sur le serveur. : D
EDIT: - Un peu plus d'informations ... Les fonctions GetTemplateTypes(), GetTemplateCategories() et GetPackages() sont de retour des listes de modèles qui sont interrogeables via ADO.net SQL brut de SQL Server 2008. Ces fonctions sont toujours renvoyant les données demandées et il n'y a jamais aucune sorte d'exception jetant.
public ActionResult Package_Read([DataSourceRequest] DataSourceRequest request)
{
try
{
var templateTypes = DBRepository.GetTemplateTypes();
var templateCategories = DBRepository.GetTemplateCategories();
var templatePackages = DBRepository.GetPackages();
// Third Solution, never worked
List<PackageViewModel> packageViewModels = new List<PackageViewModel>();
foreach (var templatePackage in templatePackages)
{
PackageViewModel packageViewModel = new PackageViewModel();
packageViewModel.val1= templatePackage.val1;
packageViewModel.val2= templatePackage.val2;
packageViewModel.ID = templatePackage.ID;
packageViewModel.Type =
(from t in templateTypes where t.ID == templatePackage.ID select t).First();
packageViewModel.Category = (from t in templateCategories
where t.Category_ID == templatePackage.Category_ID
select t).First();
packageViewModels.Add(packageViewModel);
}
// Second Soltuion - Worked for an amount up to 14 packageViewModels
var packageViewModels = templatePackages.Select(p => new PackageViewModel
{
VPackage_ID = p.VPackage_ID,
VType = (from t in templateTypes where t.ID == p.VType_ID select t).Single(),
VCategory = (from t in templateCategories
where t.VCategory_ID == p.VCategory_ID select t).Single(),
val1 = p.val1,
val2 = p.val2
}).ToList();
// First Solution - Worked till a specific number of PackageViewModels (about 12)
IEnumerable<PackageViewModel> packages = DBRepository.GetPackages()
.Select(p => new PackageViewModel
{
VPackage_ID = p.VPackage_ID,
VType = DBRepository.GetTemplateType(p.VType_ID),
VCategory = DBRepository.GetTemplateCategory(p.VCategory_ID),
val1 = p.val1,
val2 = p.val2,
});
var jsonResult = Json(packageViewModels.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
jsonResult.MaxJsonLength = int.MaxValue;
return jsonResult;
}
catch (Exception ex)
{
Util.logger.Error(ex.Message);
return new JsonResult();
}
}
Je n'ai absolument aucune idée de comment gérer cela.
Merci d'avance!
D'où provient l'erreur? Lorsque vous testez en local, utilisez-vous la même source de données qu'en cas d'échec? Pourriez-vous poster la trace de la pile de l'erreur? – swestner