问题标签 [micro-orm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - dapper 应该使用“使用”语句吗?
我见过有人在做的例子:
或者以上是一种不好的做法,是否应该将所有查询都放在这样的语句中:
orm - 在静态类中使用 Dapper
我正在为我的系统构建同步。现在,我需要将所有执行的存储过程插入到一个表中。我的解决方案是添加一个静态类并让 Dapper 在其中运行。理论上,静态类/函数在不改变任何对象状态的情况下是可以使用的。我想我会格外小心,并询问你们的想法。它会导致任何问题吗?
sql-server - VB.NET - PetaPoco\NPoco - 从具有动态和静态列的表中获取数据 - 性能问题
我有一个具体的情况,我还没有找到解决方案。
我有几个具有相同结构的数据库,其中有一个表(比如说),它具有已知的列,Users
例如:UserID
、、、等...在同一个表中,我有动态自定义列,我只能在运行时知道, 如: , , , 等...UserName
UserMail
customField54
customField75
customField82
我有一个屏幕,我必须在其中显示用户列表,并且有数千条记录(必须显示所有用户 - 毫无疑问)。
数据库 A 中的 Users 表列如下所示:
例如,假设我有另一个数据库 B,那里的表用户看起来像这样:
我有一个代码,每次都连接到另一个数据库。所以我有一个代码->多个数据库,而每个数据库的区别是Users
表的自定义字段。
如果我使用 DataTable,我可以查询:
然后,我可以动态检索自定义字段值,如下所示:
我的意图不是使用 DataTables。我想使用强类型对象。我无法使用内部的 customFields 创建用户的 POCO,因为对于每个数据库,Users 表都有不同的 customFields 列,因此我无法创建具有强类型变量的对象。
然后,我决定创建一个包含已知列的用户类,以及一个包含 customFields 的字典。
在 VB.NET 中,我创建了一个用户类,如下所示:
该类具有静态值:UserID
,UserName
等...此外,它具有customFieldIDs
及其值的字典,因此我可以在单个操作中检索值(在 O(1) 复杂度中)
我使用 MicroORM PetaPoco\NPoco 来填充这些值。ORM 允许我获取用户数据,而无需我自己迭代数据,方法是调用:
但是customFields
没有填充字典。为了填充,我必须迭代userList
和为每个用户检索customFields
数据。这是获取数据的一种非常昂贵的方式,并且会导致非常糟糕的性能。
我想知道是否有一种方法可以通过单个命令使用 PetaPoco\NPoco 将数据提取到 User 类中,并设法为每个用户填充已知值和自定义字段字典,而无需遍历整个集合.
我希望它被理解。这对我来说真的很难解释,也是一个很难找到解决方案的问题。
asp.net - PetaPoco \ NPoco - 部分插入
有没有办法使用 PetaPoco 或 NPoco 部分插入对象?例如,我有一个名为 Users 的表:
这些列中的每一列都是 NON NULLABLE 并且当它们为空时具有默认值。
在 ASP.NET 中,我有一个 User 类,我使用 ORM 插入一条新记录,其中只有名称:
我希望数据库如下所示:
我希望插入命令只插入名称,而不使用对象的默认值插入其他对象属性。
比如有部分更新,我要部分插入。这在 PetaPoco 中可能吗?
没有任何ORM,有没有另一种方法可以自己做?
编辑:
使用 SQL 我可以完成工作,但我需要使用 POCO 对象,所以我不想记住数据库参数。我想要类似的东西
它只会插入用户名,而忽略其他变量。我想在后台生成的 SQL 是:
如您所见,它没有考虑类中的其他变量。今天如果我使用插入命令,即使我给类中的单个属性赋值,NPoco 仍然尝试将所有类变量插入到数据库中,设置我不想用类的默认值设置的变量(与 db 默认值不同)
此外,所有属性都是可插入/可更新的,因此类中不能有任何 ResultColumn 类型。我想插入这些值,但只插入我在该特定实例中声明的值。所有属性都可以更新和插入,但对于每个实例,我只插入我声明的内容。
c# - MicroLite ORM 是否支持 DynamicObject / IDynamicObjectMetaProvider
我正在寻找一个支持 DynamicObject / IDynamicObjectMetaProvider 结构的微系统,例如:
填充:
它只是抛出一个MicroLiteException
附加信息System.Object
。
MicroLite 是否支持此类对象?
azure - MicroLite 和 Azure SQL 数据库
在 Azure SQL 数据库上使用 MicroLite 时是否存在任何已知问题?
我们会遇到一些有点令人不安的奇怪行为。在审核数据库时,我们监控我们的查询是否由服务器以非常好的方式(50ns)处理。然而,“rpc 完成”事件的到达时间是它们应有的延迟的数千倍(500000ns)。在此服务器上使用实体框架时,我们没有此类问题。
ado.net - 为什么 Azure 数据库在事务方面表现更好
我们决定对 Azure 数据库使用 micro-orm。由于我们的业务只需要“插入”和“选择”,我们决定禁止所有代码管理SqlTransaction
(数据没有并发问题)。
然后,我们注意到我们的 Azure 数据库实例响应非常缓慢。“ rpc completed ”事件发生的延迟是运行简单 sql 语句所需时间的数百倍。
接下来,我们使用 EF6 对我们的代码进行了基准测试,我们看到服务器响应非常快。由于 EF6 实现了一个内置事务,我们决定恢复SqlTransaction
micro-orm 上的 (ReadCommited),我们注意到一切都很好。
Azure 数据库是否需要显式SqlTransaction
(由代码管理)?对SqlTransaction
Azure 数据库性能有何影响?为什么以这种方式实施?
编辑:我将发布一些关于我们收集痕迹的方式的更精确的信息。似乎我们的 Azure 事件日志有时以纳秒为单位,有时以毫秒为单位。看起来很奇怪。
dapper - Dapper Contrib 插入 MySQL 语法错误
嘿,我在 MySQL 中使用 Dapper.Contrib 出现语法错误
在 mysql 中插入的正确语法是
我的代码:
如何解决这个问题?提前致谢
c# - 如何更新 NPoco 中的嵌套对象
我找不到在多对一情况下更新嵌套对象的示例。映射在 Fetch 上的工作方式非常清楚;而且我不是在说更新嵌套对象的集合,只是一个。所以给出下面的例子:
在数据库中,Student 表带有 CurrentSchool 列,该列是 School 表中记录的 ID。
我没有更新 School 对象本身,而是将学生映射到另一个对象。这在查询上很好,但是如果我更改 Student 上的 CurrentSchool 对象并使用 db.Update(studentObject) 保存,则外键不会更新。