이 예외에 대한 몇 가지 다른 게시물이 있지만 어느 것도 나를 도왔습니다.하나 이상의 개체가 IComparable을 구현해야합니다. 로컬 컴퓨터에서 작동하지만 서버에서는 작동하지 않습니다.
각각의 솔루션 3 개가 로컬 시스템에서 작동하지만 Live-System/서버에서는 작동하지 않습니다.
PackageViewModels의 수가 증가함에 따라 First Solution은 작업을 중단했습니다. - 두 번째 솔루션 구현. 사용자는 두 가지 항목을 더 추가했으며 두 번째 솔루션은 또한 업무를 중단했습니다. 세 번째는 서버에서 작동하지 않았으며 구현되었습니다. : D
EDIT : - 몇 가지 추가 정보 GetTemplateTypes(), GetTemplateCategories() 및 GetPackages() 함수는 SQL Server 2008에서 ADO.net 원시 SQL을 통해 쿼리 된 모델 목록을 반환합니다. 항상 쿼리 된 데이터를 반환하고 어떤 예외도 던지지 않습니다.
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();
}
}
절대 처리 할 방법이 없습니다.
미리 감사드립니다.
어디에서 오류가 발생합니까? 로컬에서 테스트 할 때 실패 할 때와 동일한 데이터 소스를 사용하고 있습니까? 오류 스택 추적을 게시 할 수 있습니까? – swestner