我从新的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) 以一个带有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 压缩的固定长度不是一个选项。
我正在将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) 给定带有私有构造函数的枚举类,如何配置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,但这似乎很乏味。
编辑:
有没有办法使用In-Process Migration Runner生成 SQL 文件输出,类似于使用工具中的-output 命令参数可以实现的结果dotnet-fm。
我在 中找不到任何属性、字段或方法IMigrationRunner,IMigrationRunnerBuilder或者在IMigrationProcessorOptions设置中找不到任何属性、字段或方法来配置输出。
我错过了什么吗?
我有两个表,如下所示:
-----------------------
|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。