小编cmp*_*des的帖子

EF Core“Group By 无法翻译,将在本地进行评估。”

我正在使用 Entity Framework Core 2.2.6 对 Sql Server 数据库运行一个简单的查询,但是 GroupBy 没有在服务器上执行,而是在本地执行。

有什么我遗漏的东西会迫使该组进入服务器吗?

我尝试过的 EF 查询的 2 个变体:

public class Holiday
{
    public int Id {get;set;}
    public DateTime Date {get;set;}
    public string Username {get;set;}
    public string Approver {get;set;}
}

//version 1
await _dbContext.Holidays
    .GroupBy(h => new { h.Date})
    .ToDictionaryAsync(x => x.Key.Date, x => x.Select(x1 => x1.Username).ToList());

//version 2
await _dbContext.Holidays
    .GroupBy(h => h.Date)
    .ToDictionaryAsync(x => x.Key, x => x.Select(x1 => x1.Username).ToList());
Run Code Online (Sandbox Code Playgroud)

两种变体都会产生以下 SQL:

SELECT [h].[Id], [h].[Approver], [h].[Date], [h].[HolidayTypeId], [h].[OwningRequestId], [h].[HolidayStatusId], [h].[Username] …
Run Code Online (Sandbox Code Playgroud)

c# ef-core-2.2

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

Visual Studio docker工具在调试时发布端口

我刚刚开始使用 Docker,并且已经安装了 docker for windows。
docker 的基本设置是正确的,我已经能够调试一个简单的 Asp.Net Core 应用程序,该应用程序从 Visual studio 中部署到容器(使用针对 docker 的标准“运行”命令)。

我遇到的问题是能够在不使用 localhost(即使用容器的 IP)的情况下访问容器内托管的端点。我需要这个,因为我打算从 xamarin 应用程序到达端点。

经过一些阅读后,我似乎需要“发布”应用程序正在运行的端口,在本例中为端口 5000,但我似乎找不到在哪里配置 Visual Studio 来执行此操作。

使用邮递员或 Web 浏览器访问端点会导致相同的响应 Empty_Response 错误。

我希望有人能指出我正确的方向

我的 Dockerfile:

FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-stretch-slim AS base
WORKDIR /app
EXPOSE 5000
ENV ASPNETCORE_URLS http://<container ip>:5000

FROM mcr.microsoft.com/dotnet/core/sdk:2.2-stretch AS build
WORKDIR /src
COPY ["ItemCheckout/ItemCheckout.csproj", "ItemCheckout/"]
RUN dotnet restore "ItemCheckout/ItemCheckout.csproj"
COPY . .
WORKDIR "/src/ItemCheckout"
RUN dotnet build "ItemCheckout.csproj" -c Release -o /app

FROM build AS publish
RUN dotnet publish "ItemCheckout.csproj" -c …
Run Code Online (Sandbox Code Playgroud)

c# docker dockerfile asp.net-core visual-studio-2019

5
推荐指数
2
解决办法
7446
查看次数