Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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
C#实体框架,不同查询的结果相同_C#_Entity Framework_Sqlite - Fatal编程技术网

C#实体框架,不同查询的结果相同

C#实体框架,不同查询的结果相同,c#,entity-framework,sqlite,C#,Entity Framework,Sqlite,我正在使用EntityFramework.Sqlite 7.0.0-rc1-final查询Sqlite数据库 以下方法是相关代码: try { using (var db = new SfpDb.Ctx()) { int baneLokId = db.tabStevne.First(a => a.Id == id).BaneLokId; Conso

我正在使用
EntityFramework.Sqlite 7.0.0-rc1-final
查询Sqlite数据库

以下方法是相关代码:

        try
        {
            using (var db = new SfpDb.Ctx())
            {
                int baneLokId = db.tabStevne.First(a => a.Id == id).BaneLokId;
                Console.WriteLine("local baneLokId: " + baneLokId.ToString());

                IQueryable<int> baneTypeIds = db.tabBane.Where(o => o.BaneLokId == baneLokId).Select(n => n.BaneTypeId);

                List<SfpDb.HovedOvelse> testList = new List<SfpDb.HovedOvelse>();

                foreach (int i in baneTypeIds)
                {
                    Console.WriteLine("local  baneTypeIds: " + i);
                    testList.AddRange(db.tabHovedOvelse.Where(p => p.BaneTypeId == i));

                    foreach (SfpDb.HovedOvelse h in db.tabHovedOvelse.Where(p => p.BaneTypeId == i).OrderBy(k => k.navn))
                    {
                        Console.WriteLine("\tlocal HovedOvelseId: " + h.Id + " - " + h.navn);
                    }
                }

                return db.tabHovedOvelse.Where(p => baneTypeIds.Contains(p.BaneTypeId)).OrderBy(v => v.navn).ToList();
            }
        }
输出:

Input id: 1
local baneLokId: 2
local  baneTypeIds: 2
        local HovedOvelseId: 3 - 2-Fri-B
        local HovedOvelseId: 6 - 4-Silhuett
        local HovedOvelseId: 7 - 5-Standard
        local HovedOvelseId: 8 - 6-VM
        local HovedOvelseId: 9 - 7-Hurtig
        local HovedOvelseId: 10 - 8-NAIS
local  baneTypeIds: 3
        local HovedOvelseId: 2 - 2-Fri-A
local  baneTypeIds: 4
        local HovedOvelseId: 1 - 1-Felt

Ret val: HovedOvelseId: 1 1-Felt
Ret val: HovedOvelseId: 2 2-Fri-A
Ret val: HovedOvelseId: 3 2-Fri-B
Ret val: HovedOvelseId: 6 4-Silhuett
Ret val: HovedOvelseId: 7 5-Standard
Ret val: HovedOvelseId: 8 6-VM
Ret val: HovedOvelseId: 9 7-Hurtig
Ret val: HovedOvelseId: 10 8-NAIS


Input id: 3
local baneLokId: 1
local  baneTypeIds: 2
        local HovedOvelseId: 3 - 2-Fri-B
        local HovedOvelseId: 6 - 4-Silhuett
        local HovedOvelseId: 7 - 5-Standard
        local HovedOvelseId: 8 - 6-VM
        local HovedOvelseId: 9 - 7-Hurtig
        local HovedOvelseId: 10 - 8-NAIS
local  baneTypeIds: 1
        local HovedOvelseId: 4 - 3-Luft-AD
        local HovedOvelseId: 5 - 3-Luft-BC

Ret val: HovedOvelseId: 1 1-Felt
Ret val: HovedOvelseId: 2 2-Fri-A
Ret val: HovedOvelseId: 3 2-Fri-B
Ret val: HovedOvelseId: 6 4-Silhuett
Ret val: HovedOvelseId: 7 5-Standard
Ret val: HovedOvelseId: 8 6-VM
Ret val: HovedOvelseId: 9 7-Hurtig
Ret val: HovedOvelseId: 10 8-NAIS
以及,将输入更改为以下内容: int-stevne1=3; int-stevne2=1

Input id: 3
local baneLokId: 1
local  baneTypeIds: 2
        local HovedOvelseId: 3 - 2-Fri-B
        local HovedOvelseId: 6 - 4-Silhuett
        local HovedOvelseId: 7 - 5-Standard
        local HovedOvelseId: 8 - 6-VM
        local HovedOvelseId: 9 - 7-Hurtig
        local HovedOvelseId: 10 - 8-NAIS
local  baneTypeIds: 1
        local HovedOvelseId: 4 - 3-Luft-AD
        local HovedOvelseId: 5 - 3-Luft-BC

Ret val: HovedOvelseId: 3 2-Fri-B
Ret val: HovedOvelseId: 4 3-Luft-AD
Ret val: HovedOvelseId: 5 3-Luft-BC
Ret val: HovedOvelseId: 6 4-Silhuett
Ret val: HovedOvelseId: 7 5-Standard
Ret val: HovedOvelseId: 8 6-VM
Ret val: HovedOvelseId: 9 7-Hurtig
Ret val: HovedOvelseId: 10 8-NAIS


Input id: 1
local baneLokId: 2
local  baneTypeIds: 2
        local HovedOvelseId: 3 - 2-Fri-B
        local HovedOvelseId: 6 - 4-Silhuett
        local HovedOvelseId: 7 - 5-Standard
        local HovedOvelseId: 8 - 6-VM
        local HovedOvelseId: 9 - 7-Hurtig
        local HovedOvelseId: 10 - 8-NAIS
local  baneTypeIds: 3
        local HovedOvelseId: 2 - 2-Fri-A
local  baneTypeIds: 4
        local HovedOvelseId: 1 - 1-Felt

Ret val: HovedOvelseId: 3 2-Fri-B
Ret val: HovedOvelseId: 4 3-Luft-AD
Ret val: HovedOvelseId: 5 3-Luft-BC
Ret val: HovedOvelseId: 6 4-Silhuett
Ret val: HovedOvelseId: 7 5-Standard
Ret val: HovedOvelseId: 8 6-VM
Ret val: HovedOvelseId: 9 7-Hurtig
Ret val: HovedOvelseId: 10 8-NAIS
在第一个查询中,本地打印在方法中的值与返回的值相同。但后一个问题并非如此。在这两种情况下,返回的值也是相同的

在我更改输入后,同样的事情发生了。本地值和返回值在第一个查询中相同,并且两个查询的返回值相同


另外,“testList”包含正确的信息,但我宁愿执行查询,也不愿循环获取信息

IQueryable<int> baneTypeIds = db.tabBane.Where(o => o.BaneLokId == baneLokId).Select(n => n.BaneTypeId);

List-baneTypeIds=db.tabBane.Where(o=>o.banelochid==banelochid)。选择(n=>n.BaneTypeId.ToList();

已解决问题。

您可以尝试var BaneTypeId=db.tabBane.Where(o=>o.banelochid==banelochid)。选择(n=>n.BaneTypeId.ToList();证明这不是数据问题。。。id值是多少?您需要显示更多信息。.另外,
banelockid
是否映射到Id?有许多可能的原因,但如果您的数据库是有效的,并且id是唯一的,那么此代码将工作。。。所以你有更多的调查工作要做。
IQueryable<int> baneTypeIds = db.tabBane.Where(o => o.BaneLokId == baneLokId).Select(n => n.BaneTypeId);
var baneTypeIds = db.tabBane.Where(o => o.BaneLokId == baneLokId).Select(n => n.BaneTypeId);
List<int> baneTypeIds = db.tabBane.Where(o => o.BaneLokId == baneLokId).Select(n => n.BaneTypeId).ToList();