是否可以在 EF Core 3.0 中创建表/实体?基本上我有我想限制插入/更新/删除命令的历史记录表。
我已经通过更改尝试了 AsNoTracking:
public DbSet<SampleHistory> SampleHistories { get; set; }
Run Code Online (Sandbox Code Playgroud)
到:
public IQueryable<SampleHistory> SampleHistories { get {return Set<SampleHistory>).AsNoTracking<SampleHistory>(); } }
Run Code Online (Sandbox Code Playgroud)
如果我做这样的事情它工作正常(没有保存在数据库中):
var v = DbContext.SampleHistories.FirstOrDefault(e => e.HistoryId == 1);
v.Field1 = $"Test{DateTime.Now.ToLongTimeString()}";
DbContext.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
但是如果我在保存之前添加更新语句,我会看到记录在数据库中更新:
var v = DbContext.SampleHistories.FirstOrDefault(e => e.HistoryId == 1);
v.Field1 = $"Test{DateTime.Now.ToLongTimeString()}";
DbContext.Update(v);
DbContext.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
我也想避免这种情况。
我对正则表达式很陌生,需要满足以下条件的名字的正则表达式:
‘且–不能在一起(例如不允许使用 John'-s)‘和–(例如,不允许使用 John 的)任何人都可以帮忙吗?我试过这个,^([a-z]+['-]?[ ]?|[a-z]+['-]?)*?[a-z]$但它没有按预期工作。
我有一个方法,它使用switch语句根据输入参数调用其他方法,如下所示:
switch (reportName)
{
case A:
return GenerateReportA(reportName, model, language);
case B:
return GenerateReportB(reportName, model, language);
case C:
return GenerateReportC(reportName, model, language);
case D:
return GenerateReportD(reportName, model, language);
case E:
return GenerateReportE(reportName, model, language);
and so on...
}
Run Code Online (Sandbox Code Playgroud)
我知道随着越来越多的报告添加到系统中,该switch语句将继续增加。是否有其他方法可以实现这一目标?...代表?... Lambda?我所知道的是,我所有的GenerateReport方法都将具有相同的签名。
我需要将输入货币(不带小数位)的格式设置为标准方式(如$XXX,XXX,XXX,XXX)。用户可以输入以下任何内容:
$123 $123,123 $1,123,123 123,123 12,123,123 12312312 123 $12123123我已经写了一篇文章Regex,我可以通过该文章找到所需的模式-> ^\$?[0-9]{1,3}(?:(,[0-9]{3})*|([0-9]{3})*)?$但我不明白如何编写替代代码来格式化上述示例以进行$XXX,XXX,XXX,XXX...格式化(因为没有固定的组可以选择)。