gpt4 book ai didi

entity-framework - 导入存储过程后无法编译项目

转载 作者:行者123 更新时间:2023-12-03 15:05:55 31 4
gpt4 key购买 nike

将存储过程导入我的数据模型后,项目停止编译。

它不断给我错误:

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


`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`
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);
}

我读到这可能是因为 EF 6 并且需要下载 VS 2012 Update 1 和/或 EF 6 Tools for VS 2012。我下载了这些工具并且已经安装了更新 4,但这没有帮助。

为什么是这样?

最佳答案

问题是您的模型对新参数一无所知。我猜当您的模型使用 时会发生这种情况 Entity Framework (EF) 较低版本(例如 5.0),但在代码中您尝试使用 EF 6.0。

因此,您应该将代码降级到 EF 5.0,或者将模型升级到 6.0。

升级型号:

  • 打开工具 -> NuGet 包管理器 -> 包管理器控制台;
  • 选择项目,其中包含您的模型作为默认项目
    控制台顶部。
  • 类型 “卸载包 Entity Framework ”然后按回车;
  • 删除后,输入 "安装包 EntityFramework -version
    6.0.0"
    并再次按 Enter 键;
  • 转至 YourModelName.Context.cs YourModelName.Context.tt 并替换“使用
    系统.数据.对象;使用 System.Data.Objects.DataClasses;"与 "使用
    System.Data.Entity.Core.Objects;"。此外,您可能需要使
    在出现此问题的所有文件中都相同。

  • 或者您可以降级在您的代码中使用的 EF 版本。为此,您应该在前 3 个步骤中执行所有相同的操作,但在第四个步骤中替换 “-版本 6.0.0” “-版本 5.0.0” .为此不需要第 5 步。

    关于entity-framework - 导入存储过程后无法编译项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21776763/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com