小编Sev*_*Der的帖子

EF Core 3 GroupBy 多列 Count Throws 与扩展但 linq 有效

这是引发完整异常的一个:

            var duplicateCountOriginal = _db.TableName
                                .GroupBy(g => new {g.ColumnA, g.ColumnB, g.ColumnC})
                                .Count(g => g.Count() > 1);
Run Code Online (Sandbox Code Playgroud)

异常: System.ArgumentException:“System.Func 2[System.Linq.IGrouping2[Microsoft.EntityFrameworkCore.Storage.ValueBuffer,Microsoft.EntityFrameworkCore.Storage.ValueBuffer],Microsoft.EntityFrameworkCore.Storage.ValueBuffer]”类型的表达式不能用于“System”类型的参数.Func 2[Microsoft.EntityFrameworkCore.Storage.ValueBuffer,Microsoft.EntityFrameworkCore.Storage.ValueBuffer]' of method 'System.Collections.Generic.IEnumerable1[Microsoft.EntityFrameworkCore.Storage.ValueBuffer] Select[ValueBuffer,ValueBuffer](System.Collections.Generic.IEnumerable 1[Microsoft.EntityFrameworkCore.Storage.ValueBuffer], System.Func2[Microsoft.EntityFrameworkCore.Storage.ValueBuffer,Microsoft.EntityFrameworkCore.Storage.ValueBuffer])'(参数'arg1 ')

但是当它被写成 linq 时,同样的事情也有效(我更喜欢扩展)

            var duplicateCount =
                    from a in _db.TableName
                    group a by new {a.ColumnA, a.ColumnB, a.ColumnC}
                    into g
                    where g.Count() > 1
                          select g.Key;
            duplicateCount.Count()
Run Code Online (Sandbox Code Playgroud)

我无法理解为什么一个有效或另一个无效。此外,如果我根据 EF Core 3 更改稍微更改第一个,如下所示

            var duplicateCountOriginal = _db.TableName
                                .GroupBy(g => new {g.ColumnA, g.ColumnB, g.ColumnC})
                                .AsEnumerable()
                                .Count(g => g.Count() > 1);
Run Code Online (Sandbox Code Playgroud)

我收到以下异常: …

entity-framework ef-core-3.0 .net-core-3.1

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

尝试使用Visual Studio 2008附加到ASP.NET进程时,"Windows 64位平台不支持混合模式调试"

在.NET 2.0和VS.NET 2005中调试ASP.NET应用程序时,我习惯于附加一个进程.我不知道VS.NET 2008中这个功能发生了什么.

我也不想通过从起始页面开始进行调试,因为当应用程序足够大时你不希望它被编译,你有时无法从一开始就抓住一个案例而你想在那段时间内抓住那个案例.

我无法想象这一个.

我正在使用VS.NET 2008 Team Suite运行Vista Ultimate x64.

此外,在WebSite Propery页面的启动选项中,服务器被选为"使用默认Web服务器",自定义服务器显示为灰色,我无法检查.(我不知道我是否需要一些改变,但我甚至不能尝试)

最重要的是,我尝试从默认页面进行调试,但在这种情况下,我得到的是"无法在Web服务器上开始调试.在Windows 64位平台上不支持混合模式调试".什么?无论如何,我进入解决方案的配置管理器并将混合模式更改为任何CPU,但没有运气.

在没有调试帮助的情况下,将ASP.NET降低到PHP或其他类型的水平.

补充说明:

  1. 我正在使用DotNetNuke 5.0.1并在其下构建模块.
  2. IIS 7与集成模式一起使用.

asp.net iis debugging visual-studio-2008 visual-studio

2
推荐指数
1
解决办法
2万
查看次数

如何覆盖Response.Redirect以防止端口随之而来

我有一个场景,我的负载均衡器将端口80从外部转换为本地端口801.当涉及到服务器时,服务器显然会看到端口801,而在Response.Redirect中,它会尝试将端口801注入它重定向到的URL,但这对我来说不是理想的解决方案.

我的想法是:1.覆盖Response.Redirect,以便从中删除端口.2.在web.config中进行某种配置以忽略该端口.3.解决问题最棘手的方法是将整个应用程序更改为在Response.Redirect中使用完整的URL,这是一个很大的痛苦.

这个问题有一个很好的解决方案吗?

环境:Windows Vista,Windows 2003 Server,Windows 2008 Server IIS 6,IIS 7 ASP.NET C#和VB.NET

c# windows asp.net iis response.redirect

2
推荐指数
1
解决办法
3730
查看次数