问题列表 - 第317979页

如何使用 Entity Framework Core 将 STRING_AGG 强制转换为 varchar(max)

我正在尝试使用 C# 中的 Entity Framework Core 和 Linq 来获取查询的以下部分

STRING_AGG(cast(EntityName as varchar(max)), ' , ') AS AllEntityNames
Run Code Online (Sandbox Code Playgroud)

我需要连接所有的EntityName. 但是,我收到错误:

STRING_AGG 聚合结果超出了 8000 字节的限制。使用 LOB 类型以避免结果截断。

当我使用时

.Select(g => new
             {
                 AllEntityNames = string.Join(",", g.Select(p => p.EntityName )) 
             })
Run Code Online (Sandbox Code Playgroud)

varchar我们如何在 C# 代码中对 SQL 查询的一部分进行转换?

c# linq sql-server sql-to-linq-conversion entity-framework-core

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

C++20 标准 (N4860) 中哪里规定内联函数必须在翻译单元中使用之前定义?

[dcl.constexpr]/1 :

说明constexpr符仅应用于变量或变量模板的定义或者函数或函数模板的声明。说明consteval符仅适用于函数或函数模板的声明。constexpr使用or说明符声明的函数或静态数据成员consteval隐式是内联函数或变量 ([dcl.inline])。如果函数或函数模板的任何声明具有constexpr或consteval说明符,则其所有声明都应包含相同的说明符。

实施例1

constexpr void square(int &x);  // OK, declaration
constexpr int bufsz = 1024;     // OK, definition
constexpr struct pixel {        // error: pixel is a type
  int x;
  int y;
  constexpr pixel(int);         // OK, declaration
};
constexpr pixel::pixel(int a)
  : x(a), y(x)                  // OK, definition
  { square(x); }
constexpr pixel small(2);       // error: square not defined, so small(2) <<<<<<<<<<<<<<<<<<<<
                                // not constant ([expr.const]) so …
Run Code Online (Sandbox Code Playgroud)

c++ inline c++20 constexpr-function

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

用包装类模仿 const 引用?

我试图在包装类中保留一个临时值,但无法弄清楚。

\n

我可以在 const 引用中保存一个临时值:

\n
  const string& a = string("abc");\n
Run Code Online (Sandbox Code Playgroud)\n

但无法使用包装类来模仿这一点,例如:

\n
  reference_wrapper<const string> b = cref( string("abc") );\n
Run Code Online (Sandbox Code Playgroud)\n
\n

错误:使用已删除的函数 \xe2\x80\x98void std::cref(const _Tp&&) [with _Tp\n= __cxx11::basic_string]\xe2\x80\x99 102 | Reference_wrapper b = cref( string("abc") );

\n
\n

我试图避免像第一行代码那样破坏临时文件。是否可以编写一个可以保存常量引用的包装类?

\n

c++

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

$1=$1 没有任何意义

在查看 AWK文档时时,我发现了一些有趣的东西。

\n

很长一段时间以来,我都知道{$1=$1}1重建当前记录并删除额外的空格,但是在阅读文档时它说你可以使用$1 = $1.

\n

果然,我测试了这个并且它有效。但这似乎违背了 AWK 程序结构的基本原则。IE;pattern {action}。

\n

$1 = $1是一种模式,因为按照文档,操作必须用大括号括起来 ,操作必须用大括号括起来。

\n
\n

一个操作由一个或多个 awk 语句组成,括在大括号\n(\xe2\x80\x98{\xe2\x80\xa6}\xe2\x80\x99) 中。每个语句指定要做的一件事。这些语句由换行符或分号分隔\n。即使该操作仅包含一条语句,或者根本不包含任何语句,也必须使用该操作周围的大括号。

\n
\n

那么,在内部是如何完成分配的呢?pattern那么AWK 程序内部的

\n

awk

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

为什么这段代码打印由 clang 和 gcc 编译的不同值?

汇编:

.intel_syntax noprefix
.global Foo
Foo:
    mov ax, 146
    ret
Run Code Online (Sandbox Code Playgroud)

主要.c:

#include <stdio.h>

extern int Foo(void);

int main(int argc, char** args){
    printf("Asm returned %d\n", Foo());
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

现在我编译并链接:

(compiler name) -c asm.s -o asm.o
(compiler name) asm.o main.c -o  main
./main
Run Code Online (Sandbox Code Playgroud)

我正在使用 Windows 和 LLVM 的 x64 windows 二进制文件。

GCC 打印 146(如预期),但 clang 生成的代码打印随机值,为什么?在 Windows 上使用 gdb 调试 clang 二进制文件显然存在一些问题,因此我无法提供任何 gdb 日志。GCC 二进制文件正在执行我期望的操作,但不是 Clang。

c assembly x86-64 calling-convention

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

箭头运算符 -&gt; 和范围解析运算符 :: 的组合有何含义?

在cppreference.com \xe2\x80\x93 \xe2\x80\x9cQualified name Lookup\xe2\x80\x9d上,我发现了这个奇怪的代码示例:

\n
struct C { typedef int I; };\n\ntypedef int I1, I2;\n\nextern int *p, *q;\n\n// Slight modification to prevent linker error\n//struct A { ~A(); };\nstruct A { ~A() {}; };\n\ntypedef A AB;\n\nint main()\n{\n    p->C::I::~I(); // The name I after ~ is looked up in the same scope as I before ::\n                   // (that is, within the scope of C, so it finds C::I)\n\n    q->I1::~I2();  // The name I2 is looked up in the same …
Run Code Online (Sandbox Code Playgroud)

c++ syntax member-access scope-resolution-operator

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

为什么在我的 match 语句中用大括号包裹 None 会使下面的 Rust 代码起作用?

我有一个非常简单的 Rust 程序,其中有一个 hashmap<String, Vec> ,如果键不存在,我想插入一个新数组,如果键存在,则推送到现有数组。但是,如果我删除 None 周围的大括号(如代码 2 中所示),则会出现以下错误。这是怎么回事?代码 1 按预期工作,但我只是不明白为什么。

error[E0308]: `match` arms have incompatible types
  --> src/main.rs:97:20
   |
94 | /     match get_option {
95 | |         None => map.insert(str_check, vec![String::from("inserted!")]),
   | |                 ------------------------------------------------------ this is found to be of type `Option<Vec<String>>`
96 | |         
97 | |         Some(v) => v.push(String::from("Chris")),
   | |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Option<Vec<String>>`, found `()`
98 | |     }
   | |_____- `match` arms have incompatible types
   |
   = note:   expected enum `Option<Vec<String>>`
           found unit …
Run Code Online (Sandbox Code Playgroud)

rust

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

如何在编译时检查所有参数是否有足够的“{}”占位符?

std::format有一个(编译时和运行时)格式字符串验证,但此验证中不包括的一件事是是否有足够的{}占位符用于所有参数(过多的参数将被默默忽略)。

我认为这在某些罕见的情况下可能很有用(例如,如果您生成格式字符串),但我不需要它,并且因此我遇到了一些错误。

我可以做些什么来检查这个编译时间吗?可能通过包装std::format我自己的函数。

例子:

#include <format>
#include <iostream>

int main()
{
    std::cout << std::format("{} {}", 1, 2, 3, 4, 5) << '\n'; // Prints `1 2`, no error!
}
Run Code Online (Sandbox Code Playgroud)

注意: std::format 确实有编译时格式字符串验证。他们只是不检查这个具体问题(过多的争论)。

c++ fmt stdformat

19
推荐指数
1
解决办法
301
查看次数

将 conda 更新到 23.11.0 后解决 conda-libmamba-solver (libarchive.so.19) 错误,而无需重新安装 conda?

$ condaconda 更新后,即使将解算器设置为经典(使用conda config --set solver classic) ,我在运行后也会收到以下错误:

Error while loading conda entry point: conda-libmamba-solver (libarchive.so.19: cannot open shared object file: No such file or directory)
Run Code Online (Sandbox Code Playgroud)

我有康达23.11.0。

在 Github 上有一个问题https://github.com/conda/conda-libmamba-solver/issues/283,其中他们提到如果libarchive和libmamba来自同一频道,则应该解决。

但是当我libarchive使用频道重新安装时main,它不会更新。

有谁知道如何解决这个问题?我不想从头开始重新安装 Conda。

网上类似的链接不能解决问题:

python conda libarchive

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

将 Animejs 与 WebDriver 一起使用 &gt; ReferenceError:NodeList 未定义

用于webdriverio创建 SaaS 测试。我想添加鼠标动画,animejs以便我可以记录测试以生成操作视频。

在我的webdriverio测试中(addAdditionalUsers.spec.js),我有

await closeBtn.animateMouse(); //line 34
Run Code Online (Sandbox Code Playgroud)

我animateMouse从以下进口functions.js:

export async function animateMouse() {
    await browser.addCommand('animateMouse', async function() {
        await this.waitForExist();
        const rect = await browser.execute(elem => elem.getBoundingClientRect(), await this);
        const targetX = rect.x;
        const targetY = rect.y;
        anime({                             //line 32
            targets: '#webdriver-mouse',
            left: targetX + 'px',
            top: targetY + 'px',
            duration: 1000, // Duration of the animation in milliseconds
            easing: 'linear'
        })
    }, true);
}
Run Code Online (Sandbox Code Playgroud)

当我运行测试时,我收到一个错误:

ReferenceError: …
Run Code Online (Sandbox Code Playgroud)

javascript webdriver-io animejs

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