2012-11-28 39 views
1

我制订一个复杂类型到SP的结果,并且正在以下错误:实体框架5数据映射

The data reader is incompatible with the specified 'CLMModel.GetContractPerformanceReview_Result'. A member of the type, 'LastYearProfit', does not have a corresponding column in the data reader with the same name.

我知道,这通常表示一些错误映射的类型,所以我看了看,并调整他们无济于事。传入类型是decimal(18, 2)(在SQL Server上),映射类型也是decimal(18, 2)。我试图提高精度到38,2没有成功,因为我认为这可能是一个潜在的更大的值被检测到的情况。

该值是根据此定义从列中生成的,因此我可以看到它没有成功映射的理由。

我甚至试过Create a new Complex Type,使用生成的类型,但它仍然失败。我已确认字段名称也匹配。

广告的援助将不胜感激。我试图在SO上搜索这个,但没有成功,但如果有另一个问题,你可以指点我,请做。谢谢。

+0

明显的问题 - 存储过程是否返回一个名为'LastYearProfit'的列? –

+0

@理查德 - 是的。我已经检查并进行了双重检查,名称匹配。之前在另一列发生了这种情况,我相信这一点已经发生了变化,因为我删除并重读了它,因此将其降序。我也有类似的映射工作正常的同一个数据库的其他调用。 –

回答

1

好的,我找到了原因,这是生成此响应的存储过程根据参数创建不同的结果集。这意味着当我手动运行它时,它显示了列,但实体框架无法正确识别正确的列。

所以课程是 - 如果您的SP为不同的参数返回不同的结果,请确保它们都返回相同的列。