Aun*_*Aun 15 stored-procedures entity-framework
将存储过程导入我的datamodel后,项目停止编译.
它一直给我错误:
The best overloaded method match for
'System.Data.Entity.Core.Objects.ObjectContext.ExecuteFunction<TicketDataModel.sp_get_orphanjobgrades1_Result>
(string, params System.Data.Entity.Core.Objects.ObjectParameter[])'
has some invalid arguments C:\Users\nikolaev\Documents\MySoft\TicketManager-06 11 2013\TicketManager\TicketDataModel\TicketDataModel\TicketEntities.Context.cs 105 20 TicketDataModel
Run Code Online (Sandbox Code Playgroud)
和
`Argument 3: cannot convert from 'System.Data.Objects.ObjectParameter' to
'System.Data.Entity.Core.Objects.ObjectParameter'
C:\Users\nikolaev\Documents\MySoft\TicketManager-06 11 2013\TicketManager\TicketDataModel\TicketDataModel\TicketEntities.Context.cs 79 143 TicketDataModel`
Run Code Online (Sandbox Code Playgroud)
代码context.cs
如下:
public virtual ObjectResult<sp_get_orphanjobgrades1_Result> sp_get_orphanjobgrades1(Nullable<System.DateTime> start_date, Nullable<System.DateTime> end_date)
{
var start_dateParameter = start_date.HasValue ?
new ObjectParameter("start_date", start_date) :
new ObjectParameter("start_date", typeof(System.DateTime));
var end_dateParameter = end_date.HasValue ?
new ObjectParameter("end_date", end_date) :
new ObjectParameter("end_date", typeof(System.DateTime));
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<sp_get_orphanjobgrades1_Result>("sp_get_orphanjobgrades1", start_dateParameter, end_dateParameter);
}
Run Code Online (Sandbox Code Playgroud)
我读到这可能是因为EF 6并且需要为VS 2012下载VS 2012 Update 1和/或EF 6 Tools.我下载了这些工具,我已经安装了更新4,但这没有帮助.
为什么是这样?
Ale*_*gur 53
问题是你的模型对新参数一无所知.我想当你的模型使用EntityFramework(EF)较低版本(例如5.0 )时会发生这种情况,但在代码中你试图使用EF 6.0.
因此,您应该将代码降级到EF 5.0,或者将模型升级到6.0.
升级模型:
或者您可以降级代码中使用的EF版本.为此,您应该在前3个步骤中执行所有操作,但在第4个步骤中将"-version 6.0.0"替换为"-version 5.0.0".这不需要第5步.
归档时间: |
|
查看次数: |
15581 次 |
最近记录: |