Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 无法从这些参数推断方法中类型参数的数据类型_Database_Vb.net_Linq_Variables_Range - Fatal编程技术网

Database 无法从这些参数推断方法中类型参数的数据类型

Database 无法从这些参数推断方法中类型参数的数据类型,database,vb.net,linq,variables,range,Database,Vb.net,Linq,Variables,Range,我有下面的代码,它在提交行上抛出了一个错误。它表示无法从这些参数推断方法中的类型参数的数据类型。正如我(我认为)明确说明的数据类型,它肯定会工作。通过另一个查询直接从数据库获取用户ID Dim compulsoryModule = (From mods In db.Modules Join deg In db.Degrees On mods.Degree_code Equals deg.Degree_code

我有下面的代码,它在提交行上抛出了一个错误。它表示无法从这些参数推断方法中的类型参数的数据类型。正如我(我认为)明确说明的数据类型,它肯定会工作。通过另一个查询直接从数据库获取
用户ID

Dim compulsoryModule = (From mods In db.Modules
                                Join deg In db.Degrees On mods.Degree_code Equals deg.Degree_code
                                Where deg.Degree_code = degree And mods.Compulsory = True And mods.Level = 1
                                Select mods.Module_code)

        Dim year = (From mods1 In db.Modules
                    Join deg1 In db.Degrees On mods1.Degree_code Equals deg1.Degree_code
                    Where deg1.Degree_code = degree And mods1.Compulsory = True And mods1.Level = 1
                    Select mods1.Year)

        Dim semester = (From mods In db.Modules
                        Join deg In db.Degrees On mods.Degree_code Equals deg.Degree_code
                         Where deg.Degree_code = degree And mods.Compulsory = True And mods.Level = 1
                      Select mods.Semester)

Dim take As New Take With _
            {.User_Number = userId, _
             .Degree_code = degree, _
             .Module_code = compulsoryModule, _
             .Year = years, _
             .Semester = semesters}

        db.Takes.InsertAllOnSubmit(take)

这是给出错误的最后一行

Ok修复了此错误。问题是我返回了多个记录,并试图将它们作为一个新记录输入,从而导致了错误。我将submit部分修改为代码的for循环,以迭代结果并单独添加它们。我使用的循环是:

 For Each moduleCode As String In compulsoryModules

            Dim take As New Take With _
                {.User_Number = userId, _
                 .Degree_code = degree, _
                 .Module_code = moduleCode, _
                 .Year = years, _
                 .Semester = semesters}

            db.Takes.InsertOnSubmit(take)

希望这对其他人有帮助。

好的,修复了此问题。问题是我返回了多个记录,并试图将它们作为一个新记录输入,从而导致了错误。我将submit部分修改为代码的for循环,以迭代结果并单独添加它们。我使用的循环是:

 For Each moduleCode As String In compulsoryModules

            Dim take As New Take With _
                {.User_Number = userId, _
                 .Degree_code = degree, _
                 .Module_code = moduleCode, _
                 .Year = years, _
                 .Semester = semesters}

            db.Takes.InsertOnSubmit(take)
希望这对其他人有帮助