问题标签 [ormlite-servicestack]
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.
rest - 这是 PATCH 的好模式吗
我正在实现一个允许对象被PATCH
编辑的 REST 风格的 API。该PATCH
操作的目的是允许更新类中的一个或多个属性,而无需触及可能设置的其他属性。
这些是ServiceStack OrmLite页面上部分更新的示例 ,但似乎需要硬编码来指示哪些字段将被部分更新。在我的场景中,取决于应用程序来决定发送哪些字段。
我还必须应对对象可能尚未持久化的情况。
为了解决这个问题,我实施了以下内容:
它有效,但感觉有些不对劲,我确定一定有更好的方法吗?
c# - 在 ServiceStack.OrmLite 中获取运行时类的表名/避免硬编码表名
我使用ServiceStack.OrmLite并希望从表中获取总行数。我目前通过ServiceStack.OrmLite 文档中指出的那样做
但是,该表的名称User
将来可能会更改,因此我正在寻找一种不对其进行硬编码的方法。是否可以从相应的类中获取表的名称,例如 ie
?
sql - 使用 SQL Server 解决行版本控制
我正在尝试为新数据库建模。要求之一是保留不同行的版本。这里是同一对象的 2 个版本的示例:
为了有这个表的外键作为参考,我需要指定一个主键。这两个候选者是ID
第UID
一个作为auto increment
数字,第二个作为每个对象手动生成的唯一标识符。
限制:
选择ID
为主键时:
- 创建对象的新版本时,对旧版本的所有引用都变得无效,必须更新
- 手动更新每个插入的所有引用不是一个选项,非常繁重
选择UID
为主键时:
UID
不是唯一的,因此不能单独使用,必须与其他字段关联并在复杂主键中使用- 将使用的所有其他字段也可能会更改外键引用。
关于克服这些限制的最佳方法(尽可能轻)有什么建议吗?
PS:我正在使用 OrmLite 使用 POCO 对象对数据库进行建模。
servicestack - 如何在 ServiceStack.OrmLite 中查询复杂数据?
我有以下课程:
我可以这样做插入数据,
并将显示数据添加到Display
列中{Options:[opt1,opt2,opt3]}
。现在我无法开始编写后续查询。
请帮忙。
c# - ormlite - 生成 poco 文件
我是 ORMLite 的新手。在实体框架中,我可以从现有数据库创建我的 POCO 文件(通过使用 CodeFirst)——我在某处读到这在 Ormlite 中是可能的——但我没有在文档中找到它。
请推荐一个框架来创建我的 poco 类,以防 ORMLite 不支持此功能(我不想用 EF 生成我的 pocos!)
谢谢!
c# - 我应该将哪个 ORM 与 ServiceStack 和现有数据库一起使用
我目前正在开发一个 Web 服务,它提供对业务对象的基本 CRUD 操作。该服务将由当前使用直接数据库访问的遗留应用程序使用。
由于 ServiceStack 的架构很棒,我决定使用 ServiceStack 而不是 WCF。
但是知道我正在尝试决定是否使用 OrmLite、nHibernate 或 Entity Framework 来访问现有的遗留数据库。
ORM 的要求如下
- 支持连接
- 支持存储过程
我已经尝试过 OrmLite(因为它很快并且已经包含在 ServiceStack 中)。我设法加入两个表的唯一方法是使用 SQL(不是一个选项)。有没有更好的办法?
上面的示例显示了一个简单的业务对象。大多数其他人需要使用许多过滤器进行插入、更新、删除、多个连接和读取。
c# - 使用自定义查询来选择其 ID 存在于 ID 列表中的项目
在 dapper 中,您可以执行以下操作:
尝试在 ormlite 中做同样的事情:
返回错误。Dapper 这样创建查询:
ormlite 在哪里生成:
方括号在 MySQL 中无效。可以在 ormlite 中做到这一点吗?
当我尝试使用匿名类列出参数时,如在 dapper 示例中,它找不到第二个参数。
c# - 对 OrmLite 的 SQL Server 特定类型支持
我刚刚了解了一种天才类型,它可以简化我的很多工作,但看起来我首选的 ORM 无法识别它。
是否有让 ServiceStack OrmLiteHierarchyId
在 SQL Server 中识别的解决方法?关于修改哪些文件的任何建议以及如何进行的任何提示?
编辑 :
这是对问题的更好说明。我有以下课程:
SqlHierarchyId是一种自定义 SQL Server 数据类型。OrmLite 将为它生成以下类:
有趣的是,我可以在[StringLength(255)]
属性上使用属性,它会获取varchar(255)
类型:
我在这里手动更改了表格并添加了列数据类型以展示差异。请注意第三列的数据类型:
拥有一个varchar
表示对于其他 DBMS 来说非常好,因为它可以在 C# 中转换,但对于 SQL Server,最好让它匹配相应的数据类型。hierarchyid
这将使视图的创建更容易(由于数据类型的内置函数)。
我知道 EF4 不支持该类型(不确定 5)。我还浏览了GitHub 上的OrmLiteDialectProviderBase.cs文件,我可以看到支持的 ADO.NET 数据类型列表。
我的简单问题是:这是 ADO.NET 的一个强大限制,还是可以在 OrmLite 中看到?如果有任何建议,我愿意帮助扩展这部分。
c# - 在服务堆栈ormlite中实现复合主键?
如何实现代表数据库中具有复合主键的表的 poco 类?所以我有 id1 和 id2,它们共同构成了主键。这里没有真正的自动增量 ID。
repository-pattern - 使用 ServiceStack.ORMLite 的存储库模式中的事务
我正在使用 ServiceStack.ORMLite 实现存储库模式,如下所示:
但是当我需要在 DbTransaction 中扭曲一些 DB 操作时,我不知道如何处理 DbTransaction。它看起来TransactionScope
是一个解决方案,但我不知道这是否太重了。