我目前正在为大学课程的订单管理系统中的客户创建表格。该系统依赖于能够为客户检索订单历史。由于我们选择不将它们存储在单独的表中,因此删除从客户表中删除行的选项至关重要。
我如何以及在哪里在CREATE声明中设置它?我怀疑我必须创建一个关于应该发生什么的规则,但我不完全确定具体细节。
题
作为 Dapper 查询的结果,我们有一个 Dapper Row,我想将其作为 json 字符串存储在我们的数据库中。不幸的是,我似乎无法让它发挥作用。因此,让我们从一些背景信息开始。
背景资料
我们正在做一个项目,我们从一个表中提取表名,以了解我们必须处理哪些表。我们还希望它尽可能灵活,因此我们决定不对我们的数据使用特定的 POCO。
我们使用的是 SQL Server 2014,所以很遗憾我们还没有“FOR JSON”选项。
代码
我们的代码看起来像这样,其中 GetData 是我们的实际查询:
var data = _queryHandler.Handle(new GetData(tableName.ToString(), 0), database);
Run Code Online (Sandbox Code Playgroud)
从技术上讲,句柄只是连接到数据库,调用
conn.QueryAsync(query, parameters)
Run Code Online (Sandbox Code Playgroud)
GetData 看起来像这样(简化):
EXEC ('SELECT * FROM ' + @table + ')'
Run Code Online (Sandbox Code Playgroud)
推理
由于表名每次都不同,我们不想在输出上强制执行 POCO。有时是用户,有时是角色,可以这么说,所以无法预测它返回什么输出。
结果
这工作正常。我们可以提取变量中的数据,这看起来像是一个 IEnumerable,应该没问题。我认为我们可以循环读取它们并提取行。到目前为止,没有问题。
手头的问题
我们要做的下一件事是将来自 DapperRow 的数据转换为 json 字符串,但我似乎无法让数据表现得像 json 字符串,因为 JsonConvert.SerializeObject 惨遭失败。DapperRow 看起来像这样(再次简化)。
{{DapperRow, Id = '07501399-b385-4d8e-bacc-gad9d04c35f7', UserName = 'test8', ApplicationId = '4721fafb-12e6-4e3c-9298-etd82d18a0cb', IsApproved = 'True', IsLockedOut = 'False', CreateDate = '26-3-2019 07:52:55' …Run Code Online (Sandbox Code Playgroud) ASP.NET 默认使用PascalCase URL 组件,但我想改用短横线大小写。我已经看到各种文章和SO 答案通过RouteTokenTransformerConvention(下面的示例代码)在 ASP.NET Core 中优雅地实现了这一点。我喜欢这个策略,因为它 1) 确保 kebab-case 路由映射到正确的控制器,并使用正确的路由参数执行操作,而无需重复的手动工作;2) 允许您生成匹配的 kebab-case 链接。
但是,它不涉及 URL 查询。 有没有办法既能获得上述好处,又能在转换中包含查询键? 例如:
some-route?product-category=some+product+category...ProductCategory将绑定模型的属性设置为"some product category"
ProductCategory想法或使用其他一些手动解决方案)[FromQuery(Name="product-category")]这是我从上述链接中获取的代码作为起点:
连字符.cs
using Microsoft.AspNetCore.Routing;
using System.Text.RegularExpressions;
public class Hyphenator: IOutboundParameterTransformer
{
public string TransformOutbound(object value)
{
if (value == null)
{
return null;
}
return Regex.Replace(value.ToString(), "([a-z])([A-Z])", "$1-$2").ToLower();
}
}
Run Code Online (Sandbox Code Playgroud)
启动.cs
services.AddControllersWithViews(options …Run Code Online (Sandbox Code Playgroud) 我一直在开发Access表单以用作SQL数据库的前端。我一直在与开发人员合作,他们在我们的主要表单中添加了以下VBA代码:
Private Sub Form_Current()
If Me.NewRecord = True Then
Me.Client_Name.Enabled = True
Me.SSN.Enabled = True
Me.DOB.Enabled = True
Me.Prob_Fee.Enabled = True
Me.Settle_Atty_Amt.Enabled = True
Me.Settle_Date.Enabled = True
Me.Final_Date.Enabled = True
Else
Me.Client_Name.Locked = True
Me.SSN.Locked = True
Me.DOB.Locked = True
Me.Prob_Fee.Locked = True
Me.Settle_Atty_Amt.Locked = True
Me.Settle_Date.Locked = True
Me.Final_Date.Locked = True
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
当我尝试向此语句添加新变量时Me.Case_ID.Locked = True,返回以下错误:
编译错误:找不到方法或数据成员
我不确定从这里去哪里。
我想知道Impedance Mismatch是什么?以及它们与数据库的关系如何?
我找不到任何信息,它告诉我它是什么,如果有人能解释给我,我将不胜感激.
我注意到ES6解构导入可以这样实现:
foo.js
export default () => {
return {
a: 'b'
}
}
Run Code Online (Sandbox Code Playgroud)
index.js
import foo from './foo';
export default foo;
export const bar = foo();
Run Code Online (Sandbox Code Playgroud)
然后,我可以将模块用于:
import foo, { bar } from 'my-module';
Run Code Online (Sandbox Code Playgroud)
但是,当我使用from的“深度解构”导入时my-module,它失败并显示:
import foo, { bar: { a } } from 'my-module';
Run Code Online (Sandbox Code Playgroud)
ES6似乎已经实现了以上语法,但是我该如何使用呢?
我正在使用 C#,并且有一个想要反序列化的 YAML 文件。
我看过使用 YamlDotNet,它看起来相当不错,但我找不到如何处理这种情况。
我正在使用的 YAML 文本具有以下格式:
1:
id: 1
name: foo
2:
id: 2
name: foo
Run Code Online (Sandbox Code Playgroud)
我希望它看起来像这样,但事实并非如此:
- id: 1
name: foo
- id: 2
name: foo
Run Code Online (Sandbox Code Playgroud)
当然,我可以通过循环每个节点并手动创建数据对象实例来恢复为更手动地完成所有操作,但似乎仍然应该有一种方法可以在处理这种烦人的数据结构时轻松使用 YamlDotNet。
我愿意接受有关 .NET 中其他 YAML 解析库的建议。
以下Python代码段说明了此问题:
print("starting")
# I am trying to configure a query/command timeout of one second.
# sqlalchemy docs suggest execution_options but the documented list of options doesn't include a timeout:
# http://docs.sqlalchemy.org/en/latest/core/connections.html#sqlalchemy.engine.Connection.execution_options
# Below, I am guessing at several likely timeout parameter names:
db_engine = create_engine("postgresql://user:pass@server/catalog",
execution_options={"timeout": 1.0,
"statement_timeout": 1.0,
"query_timeout": 1.0,
"execution_timeout": 1.0})
with db_engine.connect() as db_connection:
print("got db_connection")
# Artificially force a two second query time with pg_sleep.
# This is designed to guarantee timeout conditions and trigger an …Run Code Online (Sandbox Code Playgroud) 如果颜色是数字,那么我们可以使用正则表达式来检查颜色是否是有效的css颜色.但言语怎么样?
我有一个动态生成控件并获取颜色的代码.但不是颜色,可能有"空",""或随机的单词.有没有办法用javascript检查颜色名称?
更新:非常感谢您的回答!:)我的最终版本是(添加到较低的检查,因为可能有"绿色","红色"等):
function isValidColor(strColor) {
var s = new Option().style;
s.color = strColor;
// return 'false' if color wasn't assigned
return s.color == strColor.toLowerCase();
}
Run Code Online (Sandbox Code Playgroud) c# ×3
sql ×3
javascript ×2
sql-server ×2
.net ×1
access-vba ×1
asp.net-core ×1
colors ×1
css ×1
dapper ×1
database ×1
ecmascript-6 ×1
json ×1
ms-access ×1
postgresql ×1
python ×1
sqlalchemy ×1
yaml ×1
yamldotnet ×1