小编Rau*_*ian的帖子

更新参数后,Blazor 页面未重新呈现

我从新的ASP.NET 核心 Web 应用程序和 blazor 客户端模板 ( 3.0.0-preview4-19216-03) 开始。

要将状态添加到现有Counter.razor页面,我添加了以下类:

public class GlobalCounter
{
    private int _count;
    public int Count
    {
        get => _count;
        set
        {
            if (_count == value) return;

            _count = value;
            CounterChanged.Invoke(this, new CounterChangedEventArgs(_count));
        }
    }

    public GlobalCounter(int initialCount = 0)
    {
        _count = initialCount;
    }

    public event EventHandler<CounterChangedEventArgs> CounterChanged;
}

public class CounterChangedEventArgs : EventArgs
{
    public int Count { get; }
    public CounterChangedEventArgs(int count)
    {
        Count = count;
    }
} …
Run Code Online (Sandbox Code Playgroud)

c# blazor

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

EF Core 压缩解压列

以一个带有ID和名为data的字符串属性的简单 poco 为例。

在使用EF CoreCOMPRESS(data)保存实体并调用加载实体之前,最好的调用方式是什么?数据库列当然是 VARBINARY。DECOMPRESS(data)

详细的:

编写自定义 SQL 来实现此目的(基于上面的示例)将如下所示:

SELECT Id, DECOMPRESS(@Data) as [Data]
FROM table
Run Code Online (Sandbox Code Playgroud)

用于选择并像这样插入实体:

INSERT INTO table
VALUES(@Id, COMPRESS(@Data))
Run Code Online (Sandbox Code Playgroud)

笔记:

这是 SQL Server。

当前的字符串长度可以达到几千,因为NVARCHAR在数据库端使用 PAGE 或 ROW 压缩的固定长度不是一个选项。

c# sql-server entity-framework-core

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

Worker Service 中的 ASP.NET Core 不会调用 Configure IApplicationBuilder

我正在将ASP.NET Core 应用程序迁移到 Worker Service 模板,并打算保留Startup代码。然而之后

程序中,我按照 MS Docs 中的描述保留了CreateHostBuilder

public static void Main(string[] args)
{
    CreateHostBuilder(args).Build().Run();
}

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .UseWindowsService()
        .ConfigureWebHostDefaults(
            webBuilder =>
            {
                webBuilder.UseStartup<Startup>();
            })
        .ConfigureServices(
            services =>
            {
                services.AddHostedService<Worker>();
            });
Run Code Online (Sandbox Code Playgroud)

在调试时,ConfigureServices正在调用

public void ConfigureServices(IServiceCollection services)
Run Code Online (Sandbox Code Playgroud)

Configure在启动内,未达到/调用

public void Configure(IApplicationBuilder app)
Run Code Online (Sandbox Code Playgroud)

在它崩溃之前调用Run().

我也尝试过,结果相同:

public static IHostBuilder CreateHostBuilder(string[] args)
    => Host.CreateDefaultBuilder(args)
        .UseWindowsService()
        .ConfigureWebHostDefaults(webBuilder => webBuilder.Configure(Startup.Configure))
        .ConfigureServices(
            services =>
            {
                Startup.ConfigureServices(services); …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-core .net-core-service-worker

6
推荐指数
2
解决办法
1603
查看次数

AutoBogus AutoFaker 自定义生成器

给定带有私有构造函数的枚举类,如何配置AutoBogus.AutoFaker在生成此类 时使用我的自定义策略?

在示例中:

public class CardType
    : Enumeration
{
    public static CardType Amex = new(1, nameof(Amex));
    public static CardType Visa = new(2, nameof(Visa));
    public static CardType MasterCard = new(3, nameof(MasterCard));

    private CardType(int id, string name)
        : base(id, name)
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

我想以这种方式配置AutoBogus.AutoFaker,每当它尝试生成 时,CardType它都会使用我的代码,而不是找不到公共构造函数并返回null.

我已经尝试过CardTypeFaker : AutoFaker<CardType>,但它只允许为类的属性配置规则,而不是类本身的实例化。

我知道我可以为每个持有 a 的类创建这样一个 AutoFaker 配置CardType,但这似乎很乏味。

编辑:

谈论这个库,特别是AutoFaker部分

c# test-data autobogus

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

FluentMigrator 从进程内迁移运行程序生成 SQL 输出

有没有办法使用In-Process Migration Runner生成 SQL 文件输出,类似于使用工具中的-output 命令参数可以实现的结果dotnet-fm

我在 中找不到任何属性、字段或方法IMigrationRunnerIMigrationRunnerBuilder或者在IMigrationProcessorOptions设置中找不到任何属性、字段或方法来配置输出。

我错过了什么吗?

c# database-migration fluent-migrator

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

选择2列数据何时匹配的记录

我有两个表,如下所示:

 -----------------------
 |EmpNo|Complaint      |
 -----------------------
 |9091 |Change required|
 |9092 |No change      |
 |9093 |Changes done   |
 -----------------------
Run Code Online (Sandbox Code Playgroud)

上表包含员工编号和他的投诉。

我还有一张表格,其中包含员工的各种详细信息,如下所示。

-------------------------------
|EmpNo|EmailID      |EmpBossNO|
-------------------------------
|9091 |abc@gmail.com|9092     |
|9092 |xyz@gmail.com|9093     |
|9093 |mno@gmail.com|9099     |
-------------------------------
Run Code Online (Sandbox Code Playgroud)

在这里,如果Empno:9091提出任何投诉,那么将会向他发送一封邮件boss,说明该投诉是您的员工提出的,您必须接受它,因此我想得到该EmailID员工的老板,为此我想要一个SQL查询。我尝试了此处显示的查询,但没有用。

select EmpEmailID
from tblComplaint
inner join tblEmpMaster on tblEmpMaster.EmpNo = tblComplaint.EmpPSNo
where tblComplaint.EmpPSNo = tblEmpMaster.EmpBossNo
Run Code Online (Sandbox Code Playgroud)

我要输出类似..如果提出投诉EmpNo:9091,它将返回他老板的EmailID xyz@gmail.com

sql-server

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