Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.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# 但是,当在列表中设置数据,然后查询IQueryable(via.AsQueryable())时,这实际上会导致崩溃。因此,纯LINQ和EntityFramework在这方面表现不同!这里有一个要点来说明两者的区别:我已经放弃了模仿/假装EF。只有集成测试才_C#_Sql Server_Entity Framework_Linq_Entity Framework 6 - Fatal编程技术网

C# 但是,当在列表中设置数据,然后查询IQueryable(via.AsQueryable())时,这实际上会导致崩溃。因此,纯LINQ和EntityFramework在这方面表现不同!这里有一个要点来说明两者的区别:我已经放弃了模仿/假装EF。只有集成测试才

C# 但是,当在列表中设置数据,然后查询IQueryable(via.AsQueryable())时,这实际上会导致崩溃。因此,纯LINQ和EntityFramework在这方面表现不同!这里有一个要点来说明两者的区别:我已经放弃了模仿/假装EF。只有集成测试才,c#,sql-server,entity-framework,linq,entity-framework-6,C#,Sql Server,Entity Framework,Linq,Entity Framework 6,但是,当在列表中设置数据,然后查询IQueryable(via.AsQueryable())时,这实际上会导致崩溃。因此,纯LINQ和EntityFramework在这方面表现不同!这里有一个要点来说明两者的区别:我已经放弃了模仿/假装EF。只有集成测试才能证明这一点。 var result = dataContext.GetQueryable<PlayedGame>() .Where(playedGame => playedGame.Id == somePlayed


但是,当在列表中设置数据,然后查询IQueryable(via.AsQueryable())时,这实际上会导致崩溃。因此,纯LINQ和EntityFramework在这方面表现不同!这里有一个要点来说明两者的区别:我已经放弃了模仿/假装EF。只有集成测试才能证明这一点。
 var result = dataContext.GetQueryable<PlayedGame>()
    .Where(playedGame => playedGame.Id == somePlayedGameId)
    .Select(x => new
        {
            Name = x.PlayerGameResults.FirstOrDefault() != null ? x.PlayerGameResults.FirstOrDefault().Player.Name : null,
            Id = x.PlayerGameResults.FirstOrDefault() != null ? x.PlayerGameResults.FirstOrDefault().Player.Id : 0
    })
    .FirstOrDefault();
SELECT
    [Limit5].[Id] AS [Id], 
    [Limit5].[C1] AS [C1], 
    [Limit5].[C2] AS [C2]
FROM 
    (SELECT TOP (1) 
         [Project11].[Id] AS [Id], 
         CASE WHEN ([Project11].[C1] IS NOT NULL) THEN [Project11].[Name] END AS [C1], 
         CASE WHEN ([Project11].[C2] IS NOT NULL) THEN [Project11].[C3] ELSE 0 END AS [C2]
     FROM 
         (SELECT 
        [Project9].[Id] AS [Id], 
        [Project9].[Name] AS [Name], 
        [Project9].[C1] AS [C1], 
        [Project9].[C2] AS [C2], 
        (SELECT TOP (1) 
            [Extent6].[PlayerId] AS [PlayerId]
            FROM [dbo].[PlayerGameResult] AS [Extent6]
            WHERE [Project9].[Id] = [Extent6].[PlayedGameId]) AS [C3]
        FROM ( SELECT 
            [Project8].[Id] AS [Id], 
            [Project8].[Name] AS [Name], 
            [Project8].[C1] AS [C1], 
            [Project8].[C2] AS [C2]
            FROM ( SELECT 
                [Project6].[Id] AS [Id], 
                [Project6].[Name] AS [Name], 
                [Project6].[C1] AS [C1], 
                (SELECT TOP (1) 
                    [Extent5].[Id] AS [Id]
                    FROM [dbo].[PlayerGameResult] AS [Extent5]
                    WHERE [Project6].[Id] = [Extent5].[PlayedGameId]) AS [C2]
                FROM ( SELECT 
                    [Project5].[Id] AS [Id], 
                    [Extent4].[Name] AS [Name], 
                    [Project5].[C1] AS [C1]
                    FROM   (SELECT 
                        [Project3].[Id] AS [Id], 
                        [Project3].[C1] AS [C1], 
                        (SELECT TOP (1) 
                            [Extent3].[PlayerId] AS [PlayerId]
                            FROM [dbo].[PlayerGameResult] AS [Extent3]
                            WHERE [Project3].[Id] = [Extent3].[PlayedGameId]) AS [C2]
                        FROM ( SELECT 
                            [Project2].[Id] AS [Id], 
                            [Project2].[C1] AS [C1]
                            FROM ( SELECT 
                                [Extent1].[Id] AS [Id], 
                                (SELECT TOP (1) 
                                    [Extent2].[Id] AS [Id]
                                    FROM [dbo].[PlayerGameResult] AS [Extent2]
                                    WHERE [Extent1].[Id] = [Extent2].[PlayedGameId]) AS [C1]
                                FROM [dbo].[PlayedGame] AS [Extent1]
                                WHERE [Extent1].[Id] = @p__linq__0
                            )  AS [Project2]
                        )  AS [Project3] ) AS [Project5]
                    LEFT OUTER JOIN [dbo].[Player] AS [Extent4] ON [Project5].[C2] = [Extent4].[Id]
                )  AS [Project6]
            )  AS [Project8]
        )  AS [Project9]
    )  AS [Project11]
)  AS [Limit5]
var result = dataContext.GetQueryable<PlayedGame>()
    .Where(player => player.Id == testPlayerWithNoPlayedGames.Id)
    .Select(x => new
    {
        Name = x.PlayerGameResults.FirstOrDefault().Player.Name,
        Id = (int?)x.PlayerGameResults.FirstOrDefault().Player.Id
    }).FirstOrDefault();
var result = (from playerGame in dataContext.GetQueryable<PlayedGame>()
              where playerGame.Id == testPlayerWithNoPlayedGames.Id
              let player = x.PlayerGameResults.FirstOrDefault().Player
              select new
              {
                  Name = player.Name,
                  Id = (int?)player.Id
              }).FirstOrDefault();
var result = dataContext.GetQueryable<PlayerGameResults>()
    .Where(player => player.Player.Id == testPlayerWithNoPlayedGames.Id)
    .Select(x => new {
        Name = x.Player.Name,
        Id = x.Player.Id,
    })
    .FirstOrDefault();
.Select(x => new AchievementRelatedPlayedGameSummary
{
    //--only pull records where the Player had rank -42 (i.e. none of the PlayerGameResults)
    WinningPlayerName = x.PlayerGameResults.FirstOrDefault(y => y.GameRank == -42).Player.Name,
    WinningPlayerId = x.PlayerGameResults.FirstOrDefault(y => y.GameRank == -42).Player.Id
})
OUTER APPLY  (SELECT TOP (1) 
    [Extent2].[PlayerId] AS [PlayerId]
    FROM [dbo].[PlayerGameResult] AS [Extent2]
    WHERE ([Filter1].[Id] = [Extent2].[PlayedGameId]) AND (-42 = [Extent2].[GameRank]) ) AS [Limit1]
    LEFT OUTER JOIN [dbo].[Player] AS [Extent3] ON [Limit1].[PlayerId] = [Extent3].[Id]) AS [Project2]
OUTER APPLY  (SELECT TOP (1) 
    [Extent4].[PlayerId] AS [PlayerId]
    FROM [dbo].[PlayerGameResult] AS [Extent4]
    WHERE ([Project2].[Id] = [Extent4].[PlayedGameId]) AND (-42 = [Extent4].[GameRank]) ) AS [Limit2]
var result = dataContext.GetQueryable<PlayerGameResults>()
    .Where(x => x.PlayedGame.Id == playedGameId && x.GameRank == -42)
    .Select(x => new AchievementRelatedPlayedGameSummary
    {
        WinningPlayerName = x.Player.Name,
        WinningPlayerId = x.Player.Id
    }).FirstOrDefault();