方法没有重载 ... 需要 10 个参数。但是参数/参数匹配

Posted

技术标签:

【中文标题】方法没有重载 ... 需要 10 个参数。但是参数/参数匹配【英文标题】:No overload for method ... takes 10 arguments. But arguments/parameters match 【发布时间】:2020-03-29 11:34:54 【问题描述】:

我有一个通过 LINQ 和 EF 调用的存储过程,它返回一个计数,并且该存储过程已经过试验和测试。

需要10个参数。

这些是存储过程采用的参数:

@StartDate DATETIME,
@EndDate DATETIME,
@Wards CodeTable READONLY,
@Clinicians CodeTable READONLY,
@Sites CodeTable READONLY,
@Specialities CodeTable READONLY,
@excludeCurrentInpatients BIT,
@DemoMode BIT,
@SortOrder Int,
@IsCurrent bit

这就是我在 LINQ 中的称呼方式:

public int Inpatient_Count(DateTime? startDate, DateTime? endDate, List<string> wards, List<string> clinicians, List<string> sites, List<string> specialities, bool excludeCurrentInpatients, bool demoMode, int sortOrder, bool IsCurrent)

    using (DBName context = new DBName())
    
        int total = context.SPROC_Name(startDate, endDate, wards, clinicians, sites, specialities, excludeCurrentInpatients, demoMode, sortOrder, IsCurrent);
        return total;
    

我不断收到错误:

“SPROCName”的任何重载方法都需要 10 个参数

但我传递了十个参数。任何帮助将不胜感激。

【问题讨论】:

该过程在数据库中有 10 个参数并不意味着您的代码模型也正确反映了这一点。尝试刷新您的模型。如果这不起作用,请仔细检查您的代码和您正在查看的数据库是否相同。 这不是LINQ,只是正常使用EF。另外,我不确定您是否可以直接传入列表。见here。 谢谢大家,我刷新了模型,现在它给了我另一个警告,说实体框架不支持(表类型)。 你在 Core 吗?还是框架? 我在框架中 【参考方案1】:

你可以这样做:

    public bool Import(IEnumerable<SqlDataRecord> entities, string storedProcedureName)
    
        var paramDate = new SqlParameter("@StartDate", SqlDbType.DateTime)
        
            Value = DateTime.Now
        ; 

        var paramTable = new SqlParameter("@Wards", SqlDbType.Structured)
        
            TypeName = "CodeTable",
            Value = entities.ToList()
        ;

        var returnValue = _dbContext.Database.ExecuteSqlCommand($"storedProcedureName @StartDate, @Wards", paramDate, paramTable);
        return true;

    

修改它以满足您的需要,并提供所需的参数。

【讨论】:

以上是关于方法没有重载 ... 需要 10 个参数。但是参数/参数匹配的主要内容,如果未能解决你的问题,请参考以下文章

方法“ToString”没有重载需要 1 个参数

方法 get touch 没有重载需要 0 个参数 [关闭]

日期格式:方法“ToString”没有重载需要 1 个参数

将参数传递给 boost::thread 没有重载函数需要 2 个参数

“重载”的概念

10.5 方法的重载