我已将复杂类型映射到SP的结果,并收到以下错误:
数据阅读器与指定的内容不兼容 'CLMModel.GetContractPerformanceReview_Result'。该类型的成员, 'LastYearProfit',数据中没有对应的列 读者同名。
我知道这通常表明映射类型有问题,所以我查看并调整它们无济于事。传入类型是decimal(18, 2)
(在SQL Server上),映射类型也是decimal(18, 2)
。我已经尝试将精度提高到38,2
但没有成功,因为我认为这可能是一个可能检测到更大值的情况。
该值是使用此定义从列生成的,因此我无法看到它无法成功映射。
我甚至尝试Create a new Complex Type
来使用生成的类型,但它仍然失败。我已经确认字段名称也匹配。
非常感谢广告援助。我试过在SO上搜索这个,没有成功,但如果还有其他问题你可以指点我,请做。谢谢。
答案 0 :(得分:1)
好的,我找到了原因,即生成此响应的存储过程根据参数创建了不同的结果集。这意味着当我手动运行它时,它会显示列,但实体框架无法正确识别正确的列。
所以经验教训是 - 如果你的SP为不同的参数返回不同的结果,请确保它们都返回相同的列。