相关疑难解决方法(0)

实体框架在where子句中添加了一个额外的条件

我已经确定在执行以下表达式时:

int aNum = 52;
var myArtifacts = mydbcontext.artifacts.Where(a => a.ParentID == aNum ).ToList();
Run Code Online (Sandbox Code Playgroud)

在mysql上执行的查询是:

SELECT
  `Extent1`.`ID`, 
  `Extent1`.`ParentID`
FROM `artifacts` AS `Extent1`
WHERE ((`Extent1`.`ParentID` = 52) AND (52 IS NOT NULL));
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释为什么添加这个最后的额外条件?

AND(52不是空))

c# mysql entity-framework

5
推荐指数
1
解决办法
241
查看次数

相同的linq查询在不同的项目中生成不同的sql

查询是:

        var query =
                from stokHareket1 in ce.StokHarekets
                from stokHareket2 in ce.StokHarekets
                join stok in ce.Stoks on stokHareket1.StokId equals stok.Id
                where (
                stokHareket1.StokId == stokHareket2.StokId
                )
                select new
                {
                    result = stokHareket1.StokId
                };
Run Code Online (Sandbox Code Playgroud)

在第一个项目中,EF版本是:5.0.0,第二个项目是6.1.3

它给出了第一个项目:

SELECT 
[Extent1].[StokId] AS [StokId]
FROM  [dbo].[StokHareket] AS [Extent1]
INNER JOIN [dbo].[StokHareket] AS [Extent2] ON [Extent1].[StokId] = [Extent2].[StokId]
WHERE [Extent1].[StokId] IS NOT NULL
Run Code Online (Sandbox Code Playgroud)

在第二个:

SELECT 
[Extent1].[StokId] AS [StokId]
FROM  [dbo].[StokHareket] AS [Extent1]
INNER JOIN [dbo].[StokHareket] AS [Extent2] ON ([Extent1].[StokId] = [Extent2].[StokId])   
/*THIS LINE*/OR …
Run Code Online (Sandbox Code Playgroud)

c# linq entity-framework

0
推荐指数
1
解决办法
56
查看次数

标签 统计

c# ×2

entity-framework ×2

linq ×1

mysql ×1