_COMPlusExceptionCode -532462766在通过存储过程获取数据异步时

时间:2015-03-23 15:41:16

标签: wpf stored-procedures asynchronous

在我的WPF应用程序中,当用户在datagrid中选择一行时,我调用viewModel中应该异步获取某些数据的方法:

private async void LoadAdditionalInfoForItem(int itemId, int? supplierId)
    {            
        try
        {
            var result = await unitOfWork.ItemRepository.GetReplacementsByOEMAsync(langId, itemId);

            // Got an error here with no details, just _COMPlusExceptionCode -532462766
        }
        catch (Exception)
        {

        }

    }

在ItemRepository类中:

public Task<ObservableCollection<GetItemListProcedureResult>> GetReplacementsByOEMAsync(int langId, int itemId)
        {
            return _context.GetReplacementsByOEMProcedure(langId, itemId).ToObservableCollectionAsync();
        }

和扩展方法:

public static Task<ObservableCollection<T>> ToObservableCollectionAsync<T>(this IEnumerable<T> col)
        {
            return Task<ObservableCollection<T>>.Factory.StartNew(() => new ObservableCollection<T>(col));
        }

我在同一方法中以相同的方式(使用另一个SP)获得另一个数据异步,并且没关系。我检查了存储过程GetReplacementsByOEMProcedure,它返回了正确的数据。

那么,也许有人遇到同样的问题?我不知道如何解决它。

1 个答案:

答案 0 :(得分:0)

问题是两个SP返回同一类返回的集合。当我更改第一个SP时,我没有更改第二个SP,因此在第二个SP(GetReplacementsByOEMProcedure)中,列名未映射到返回类的字段。