RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-194914

Win_D's questions

Martin Hope
Win_D
Asked: 2023-08-15 00:01:00 +0000 UTC

在 Docker 容器中运行实体框架

  • 5

ASP .NET 7 上有一个 Web 应用程序,其中安装了实体框架依赖项(文件WebApplication.csproj):

<Project Sdk="Microsoft.NET.Sdk.Web">

    <PropertyGroup>
        <TargetFramework>net7.0</TargetFramework>
        <Nullable>enable</Nullable>
        <ImplicitUsings>enable</ImplicitUsings>
        <DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
    </PropertyGroup>

    <ItemGroup>
      <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="7.0.10">
        <PrivateAssets>all</PrivateAssets>
        <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
      </PackageReference>
      <PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="7.0.4" />
    </ItemGroup>

</Project>

该应用程序在 Docker 容器中运行(文件内容Dockerfile):

FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

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



# Добавляем Entity Framework CLI в образ
RUN dotnet tool install --global dotnet-ef --version 7.0.10
ENV PATH "$PATH:/root/.dotnet/tools"



FROM build AS publish
RUN dotnet publish "WebApplication.csproj" -c Release -o /app/publish /p:UseAppHost=false

# Окончательный образ для запуска приложения
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "WebApplication.dll"]

正如您在文件中看到的,当我们构建映像时,我们设置了dotnet-ef. 接下来,我们在帮助下docker compose up启动容器。

问题是,如果我进入容器 ( docker exec -it <container-id> /bin/bash) 并尝试执行命令dotnet ef(或任何其他命令),我会收到错误:

The command could not be loaded, possibly because:
  * You intended to execute a .NET application:
      The application 'dotnet-ef' does not exist.
  * You intended to execute a .NET SDK command:
      No .NET SDKs were found.

Download a .NET SDK:
https://aka.ms/dotnet/download

Learn about SDK resolution:
https://aka.ms/dotnet/sdk-not-found

尝试Dockerfile添加行:

# Установка .NET SDK для Entity Framework
RUN apt update && \
    apt install -y --no-install-recommends apt-transport-https && \
    apt install -y dotnet-sdk-7.0

但我收到一条消息,指出dotnet-sdk-7.0未找到存储库:

...
5.703 Reading package lists...
6.579 Building dependency tree...
6.766 Reading state information...
6.927 E: Unable to locate package dotnet-sdk-6.0
6.927 E: Couldn't find any package by glob 'dotnet-sdk-7.0'
------
failed to solve: process "/bin/sh -c apt update &&     apt install -y --no-install-recommends apt-transport-https &&     apt install -y dotnet-sdk-7.0" did not complete successfully: exit code: 100

如果我尝试安装 .NET SDK 版本不是 7.0,而是 6.0,也会出现同样的问题。也许有人有如何在 Docker 容器中使用实体框架的工作配置?因为我不知道我的方向是否正确,我的错误在哪里,哪里需要纠正。我将不胜感激任何帮助。

c#
  • 1 个回答
  • 35 Views
Martin Hope
Win_D
Asked: 2022-07-06 01:29:23 +0000 UTC

Symfony:提交表单时出现“不允许的方法(405)”错误

  • 0

有一个非常简单的 html 表单(使用 Twig 模板引擎):

<form action="{{ path('simple_route') }}" method="post">
    <input type="hidden" name="_method" value="PUT"/>
    <input type="text" name=simple-input">
    <button type="submit">Отправить</button>
</form>

以及 PUT 方法的相应处理程序:

#[Route(path: '/simple-route', name: 'simple_route', methods: ['PUT'])]
public function simpleRoute(): Response
{
    // ...
}

Symfony 文档说,为了发送 PUT 方法,您需要在 html 表单中添加一个隐藏字段_method。正如您在表单示例中看到的那样,我做到了。但是,我仍然收到错误:

No route found for "POST http://example.com/simple-route: Method Not Allowed (Allow: PUT)

我不知道如何在 Symfony 中将表单提交给处理程序,该处理程序侦听标准 GET/POST 以外的方法。如果有人知道,请告诉我如何摆脱这个错误。

PS 我正在使用 PHP 8.1 和 Symfony 6.0.2。

php
  • 1 个回答
  • 10 Views
Martin Hope
Win_D
Asked: 2022-02-01 16:28:07 +0000 UTC

Gradle 不连接 JDBC

  • 1

尝试将JDBC PostgreSQL 42.2依赖项添加到项目中。我的gradle.build:

plugins {
    id 'application'
}

group 'com.example'
version '0.1.0'

repositories {
    mavenCentral()
}

dependencies {
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.0'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'
    implementation 'org.postgresql:postgresql:42.2.18' // добавляем зависимость
}

test {
    useJUnitPlatform()
}

jar {
    manifest {
        attributes(
                'Main-Class': 'com.example.service.Main'
        )
    }
}

并在 java 类中添加了一个检查:

try {
    Class.forName("org.postgresql.Driver");
} catch (ClassNotFoundException e) {
    e.printStackTrace();
    System.exit(1);
}

编译通过./gradlew build是成功的,但是当我尝试运行jar文件执行时,出现错误:

java.lang.ClassNotFoundException: org.postgresql.Driver

当我尝试查看 jar 文件的内容时,我得到以下信息:

META-INF/
META-INF/MANIFEST.MF
com/
com/example/
com/example/service/
com/example/service/Main.class
file.txt

我之前没有使用过 Java 和 Gradle,但据我了解,我在 中指定的依赖项build.gradle应该从 Maven 存储库下载并自动添加到项目中。还是我需要自己下载依赖,添加到项目文件夹并classpath在启动jar文件时指定?

请告诉我需要做什么才能使依赖项连接并正常工作?

java
  • 3 个回答
  • 10 Views
Martin Hope
Win_D
Asked: 2020-06-07 22:44:54 +0000 UTC

在查询中声明变量

  • 0

我执行了一个查询,其中具有相同参数的相同函数多次出现。例如:

SELECT sum($1, $2) AS total, sum($1, $2) AS amount, sum($1, $2) AS result ...

是否可以将执行结果写入某个变量,以免每次都执行总和计算?例如,据我所知,在 MSSQL 中可以使用以下解决方案:

DECLARE @total INT
SET @total = SUM(1, 2)

如何在 PostgreSQL 中进行类似的查询?该函数sum()只是一个示例。实际上,每次都在那里执行一个更“重”的功能,我想优化这一刻。

postgresql
  • 1 个回答
  • 10 Views
Martin Hope
Win_D
Asked: 2020-03-14 23:20:52 +0000 UTC

类型不兼容错误 (SQLSTATE 42P08)

  • 0

有一个条件表titles:

   Column          |          Type          | Collation | Nullable |                   Default
-------------------+------------------------+-----------+----------+----------------------------------------------
id                 | integer                |           | not null | nextval('indexing_results_id_seq'::regclass)
document_id        | integer                |           |          |
title              | character varying(255) |           | not null |
normalized_title   | tsvector               |           | not null |

我在其中添加了一个新行:

documentId := 1
title := "Some title"

_, err = connect.Query(currentContext,
    "INSERT INTO titles (document_id, title, normalized_title) VALUES ($1, $2, to_tsvector($2))",
    &documentId, &title) //передаём title один раз, но используем его в запросе дважды

但作为回应,我得到一个错误:

ERROR: inconsistent types deduced for parameter $2 (SQLSTATE 42P08)

出于某种原因,PostgreSQL 不喜欢参数号 2(它在查询中使用了两次)。


如果您指定类型(至少在其中一个地方),则新行将正常添加并且不会显示错误:

_, err = connect.Query(currentContext,
    "INSERT INTO titles (document_id, title, normalized_title) VALUES ($1, $2::varchar(255), to_tsvector($2))",
    &documentId, &title) //указали приведение типа

它还有助于将相同的变量传递title2 次:

_, err = connect.Query(currentContext,
    "INSERT INTO titles (document_id, title, normalized_title) VALUES ($1, $2, to_tsvector($3))",
     &documentId, &title, &title) //вместо двух переменных передаём три

如果您不填写其中一个字段,则一切正常:

_, err = connect.Query(currentContext,
    "INSERT INTO titles (document_id, title, normalized_title) VALUES ($1, '', to_tsvector($2))",
    &documentId, &title) //пропустили поле title

我不知道为什么我不能在不强制转换的情况下title在查询 ( $1, $2, $2) 中使用变量 2 次或更多次?为什么类型转换有助于摆脱这个错误?在代码中,我已经多次修改了所有内容,但我仍然无法弄清楚为什么会这样。

PS 如果重要,我使用pgx驱动程序与 PostgreSQL (version 12) 一起工作。

база-данных
  • 1 个回答
  • 10 Views
Martin Hope
Win_D
Asked: 2020-03-07 02:35:10 +0000 UTC

确定字符串中的语言

  • 1

有必要找出字符串中的语言。如果它包含西里尔字符,那么它是用俄语写的。如果没有西里尔字符,则为英文。为此,我使用正则表达式:

import (
    "regexp"
)

func main() {
    str := "Некая строка c кириллическими символами"
    re := regexp.MustCompile("[А-Яа-я]+?") //проверяем на киррилические символы
    isRussian := re.MatchString(str)

    if isRussian {
        ...
    }
}

有没有更有效的方法来找出字符串的语言?只有两种语言——俄语和英语。

golang
  • 2 个回答
  • 10 Views
Martin Hope
Win_D
Asked: 2020-01-30 01:41:08 +0000 UTC

Golang 将包视为模块

  • 1

项目结构:

src
|----project
    |----service
        |----service.go
    |----go.mod
    |----go.sum
    |----main.go

pgx模块用作模块,服务包是在屏幕上显示文本的常规包。这是内容service/service.go:

package service

import (
    "fmt"
)

func SomeFunction(text string) {
    fmt.Println(text)
}

而main.go这个包使用的内容:

package main

import (
    "project/service"
)

func main() {
    service.SomeFunction("Some text")
}

尝试编译时,它go build -o $GOPATH/bin/project给出了一个错误:

build mod: cannot load project/service: malformed module path "project/service": missing dot in first path element

...或俄语:

невозможно загрузить project/service: неверно сформирован путь к модулю "project/service": отсутствует точка в первом элементе пути

为什么 Golang 认为我的服务包是一个模块?go.mod毕竟,它没有在文件中指定:

module mod

go 1.13

require github.com/jackc/pgx/v4 v4.2.1 // indirect

我如何告诉 Go 服务包是常规包而不是模块?或者如果我在项目中使用模块,我是否必须将所有包都包含为模块?

golang
  • 2 个回答
  • 10 Views
Martin Hope
Win_D
Asked: 2020-12-29 20:13:02 +0000 UTC

传递变量的最佳方式

  • 1

有一些非常大的字符串和 2 个输出此字符串的函数:

main() {
    str := "Very long string"
    printValueStr(str)
    printPointerStr(&str)
}

// printValueStr() принимает строку и выводит её на экран
func printValueStr(str string) {
    fmt.Println(str)
}

// printPointerStr() принимает указатель на строку и выводит её значение
func printPointerStr(str *string) {
    fmt.Println(*str)
}

可以肯定地说,通过引用传递这个字符串总是保证比通过值传递更快吗?也就是说,在程序执行过程中,我们不需要在内存中创建变量的独立副本。我们不会为此花费资源,而只是引用一个已经存在的变量。

还是在优化方面没有区别?

golang
  • 1 个回答
  • 10 Views
Martin Hope
Win_D
Asked: 2020-08-04 20:21:48 +0000 UTC

从内存中删除字符串

  • 1
  1. 有一个在 AJAX 上更新内容的页面。
  2. 每次通过 AJAX 进行更新时,页面都会出现一个带有 Javascript 代码的非常大的字符串。
  3. 然后这段代码通过执行eval()(项目很老,所以在那里实现,加上所有变量都只通过声明var)。

调试面板

每次通过 AJAX 刷新页面时,都会在内存中添加一个新行(通过 执行的行eval())。因此,每次页面更新都会消耗大约 800 KB 的 RAM,即 发生内存泄漏。

为什么会发生这种情况还有待确定。通过 执行 JS 代码时eval(),字符串可能会保留在 RAM 中。正如您在屏幕截图中看到的那样,这些行的距离等于零,这意味着这些行位于根级别并且没有对象引用它们。

是否有可能以某种方式找出为什么这些行保留在 RAM 中,因为没有人提及它们?并且可以在不以标准方式刷新页面的情况下将它们从 RAM 中删除吗?我非常感谢任何有助于解决此问题的信息。

javascript
  • 1 个回答
  • 10 Views
Martin Hope
Win_D
Asked: 2020-01-17 19:19:35 +0000 UTC

来自多个表的 LEFT JOIN

  • 0

有一个简单的变量:

$productId = 1;

还有3张桌子。

Product_Document(字典 ProductID - DocumentID)

| ProductID | DocumentID |
|-----------+------------|
| 1         | 20         |

Document_IndicNozology(DocumentID - NozologyCode 字典)

| DocumentID | NozologyCode |
|------------+--------------|
| 20         | B24..        |

以及存储必要信息的 Nozology表

| NozologyCode | NozologyContent  |
|--------------+------------------|
| B24..        | Описание болезни |

是否可以在一个查询中使用LEFT JOIN和变量$productId从第三个表中获取必要的信息?我尝试获取这样的数据:

$request = "SELECT * FROM Nozology 
LEFT JOIN Document_IndicNozology ON Document_IndicNozology.NozologyCode = Nozology.NozologyCode 
LEFT JOIN Product_Document ON Product_Document.DocumentID = Document_IndicNozology.DocumentID 
WHERE Product_Document.ProductID = $productId";

但不幸的是,它什么也没提供(没有返回数据)。

mysql
  • 2 个回答
  • 10 Views
Martin Hope
Win_D
Asked: 2020-11-13 16:50:00 +0000 UTC

这个词是单数还是复数?

  • 2

有几个名词:

  • 喷雾罐
  • 香脂
  • 颗粒剂
  • 平板电脑
  • 乳液

是否可以判断一个单词是单数还是复数?例如,“tablet”是单数,“tablet”是复数。

php
  • 1 个回答
  • 10 Views
Martin Hope
Win_D
Asked: 2020-10-23 21:43:32 +0000 UTC

获取带有图片的帖子

  • 0

我使用以下代码获得所需的帖子:

$args = [
    'posts_per_page' => 8,
    'post_type' => 'page'
];
$loop = new WP_Query($args);
...

是否可以在 Wordpress 上仅获取至少具有一张图片(attachment带有 type image/jpeg)的帖子?

wordpress
  • 2 个回答
  • 10 Views
Martin Hope
Win_D
Asked: 2020-10-06 23:26:59 +0000 UTC

更改搜索时显示的帖子数量

  • 0

"Настройки" -> "Чтение" -> "На страницах блога отображать не более"网站上启用了分页,搜索时, (屏幕截图)中指定的帖子数量是从数据库中获取的。例如,是否可以在搜索时显示 10 个帖子,而在所有其他情况下,该值取自管理面板中的站点设置?搜索结果显示在 中search.php。

wordpress
  • 1 个回答
  • 10 Views
Martin Hope
Win_D
Asked: 2020-05-04 15:35:44 +0000 UTC

分解关联数组并将其写入数据库

  • 0

该数据库有一个table包含 4 列的表:

day | active | start_time | end_time

还有一个关联类型的数组:

$monday = ["day" => "Понедельник", "active" => "1", "start_time" => "08:00", "end_time" => "12:00"];

我正在尝试将数组的内容写入数据库,按单元格细分:

$query = "INSERT INTO table (day, active, start_time, end_time) VALUES (" . $monday["day"] . ", " . $monday["active"] . ", " . $monday["start_time"] . ", " . $monday["end_time"] . ")";

但是没有任何东西写入数据库中的表。告诉我,我怎样才能写出数组的内容,按单元格分解,使表格看起来像这样:

day         | active | start_time | end_time
Понедельник | 1      | 08:00      | 12:00
php
  • 1 个回答
  • 10 Views
Martin Hope
Win_D
Asked: 2020-02-13 01:43:55 +0000 UTC

PHP:在一列中搜索多维数组

  • 0

有一个多维关联数组$array:

Array (
  [0] => Array ( [amount] => 100 [currency] => 643 )
  [1] => Array ( [amount] => 200 [currency] => 643 )
  [2] => Array ( [amount] => 300 [currency] => 643 )
  [3] => Array ( [amount] => 400 [currency] => 643 )
)

请告诉我如何在 PHP 中检查键是否在此数组中有amount值100?

php
  • 2 个回答
  • 10 Views
Martin Hope
Win_D
Asked: 2020-01-24 20:53:56 +0000 UTC

PHP:在对象数组中搜索

  • 0

下午好。我通过 API 获取 QIWI 钱包的交易历史。响应是JSON 格式的对象数组:

{"data":
  [{
  "txnId":9309,
  "personId":79112223344,
  ...
  "sum":{
    "amount":70,
    "currency":"RUB"
    },
  "source": {},
  "comment":"Test comment #1",
  ...
  }],
  "nextTxnId":9001,
  "nextTxnDate":"2017-01-31T15:24:10+03:00"
}

我将结果写入一个变量$result,然后启动 2 个变量:

$searchComment = "Test comment #1";
$checkComment = false;

如何(最好在 PHP 中)检查对象数组是否包含字符串$searchComment,如果是,将变量设置$checkComment为 true?如果您需要更多信息,我很乐意提供。

php
  • 2 个回答
  • 10 Views
Martin Hope
Win_D
Asked: 2020-08-30 02:41:17 +0000 UTC

替换 ArrayAdapter 中的内容

  • 0

有一个文件arrays.xml,其中声明了 2 个字符串数组:

<string-array name="firstList">
    <item>Один</item>
    <item>Два</item>
    <item>Три</item>
    <item>Четыре</item>
    <item>Пять</item>
</string-array>

<string-array name="secondList">
    <item>One</item>
    <item>Two</item>
    <item>Three</item>
    <item>Four</item>
    <item>Five</item>
</string-array>

还有一个类MainList继承自ListFragment:

public class MainList extends ListFragment {

//объявляем адаптер
private ArrayAdapter<String> adapter;

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    //инициализируем адаптер и устанавливаем содержимое по 
    умолчанию (отображается при запуске активити)
    adapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_list_item_1, getResources().getStringArray(R.array.firstList));
    setListAdapter(adapter);
}

单击列表项时如何将适配器的内容从更改R.array.firstList为R.array.secondList?

java
  • 2 个回答
  • 10 Views
Martin Hope
Win_D
Asked: 2020-12-26 16:55:43 +0000 UTC

通过引用传递值

  • 1

假设该网站有 4 个页面:

  • page.html(这里有 2 个链接<a>指向另一个页面 - example.html)
  • example.html(空白页)
  • result1.html
  • result2.html

如何让它在您单击第一个链接时打开一个example.html包含内容的页面result1.html?因此,当您单击第二个链接时,它也会打开example.html,但内容已加载到其中result2.html。

据我了解,有必要通过引用传递一些值,并在空白页面上进行检查:如果值为 1,则显示内容result1.html,如果为另一个,则显示内容result2.html。告诉我如何做到这一点以及使用什么(JS、PHP 或标准 HTML 工具)?

非常感谢你提前。

php
  • 2 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5