问题标签 [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.

0 投票
1 回答
248 浏览

rest - 这是 PATCH 的好模式吗

我正在实现一个允许对象被PATCH编辑的 REST 风格的 API。该PATCH操作的目的是允许更新类中的一个或多个属性,而无需触及可能设置的其他属性。

这些是ServiceStack OrmLite页面上部分更新的示例 ,但似乎需要硬编码来指示哪些字段将被部分更新。在我的场景中,取决于应用程序来决定发送哪些字段。

我还必须应对对象可能尚未持久化的情况。

为了解决这个问题,我实施了以下内容:

它有效,但感觉有些不对劲,我确定一定有更好的方法吗?

0 投票
1 回答
1441 浏览

c# - 在 ServiceStack.OrmLite 中获取运行时类的表名/避免硬编码表名

我使用ServiceStack.OrmLite并希望从表中获取总行数。我目前通过ServiceStack.OrmLite 文档中指出的那样做

但是,该表的名称User将来可能会更改,因此我正在寻找一种不对其进行硬编码的方法。是否可以从相应的类中获取表的名称,例如 ie

?

0 投票
2 回答
290 浏览

sql - 使用 SQL Server 解决行版本控制

我正在尝试为新数据库建模。要求之一是保留不同行的版本。这里是同一对象的 2 个版本的示例:

为了有这个表的外键作为参考,我需要指定一个主键。这两个候选者是IDUID一个作为auto increment数字,第二个作为每个对象手动生成的唯一标识符。

限制:

选择ID为主键时:

  • 创建对象的新版本时,对旧版本的所有引用都变得无效,必须更新
  • 手动更新每个插入的所有引用不是一个选项,非常繁重

选择UID为主键时:

  • UID不是唯一的,因此不能单独使用,必须与其他字段关联并在复杂主键中使用
  • 将使用的所有其他字段也可能会更改外键引用。

关于克服这些限制的最佳方法(尽可能轻)有什么建议吗?

PS:我正在使用 OrmLite 使用 POCO 对象对数据库进行建模。

0 投票
1 回答
554 浏览

servicestack - 如何在 ServiceStack.OrmLite 中查询复杂数据?

我有以下课程:

我可以这样做插入数据,

并将显示数据添加到Display列中{Options:[opt1,opt2,opt3]}。现在我无法开始编写后续查询。

请帮忙。

0 投票
2 回答
2698 浏览

c# - ormlite - 生成 poco 文件

我是 ORMLite 的新手。在实体框架中,我可以从现有数据库创建我的 POCO 文件(通过使用 CodeFirst)——我在某处读到这在 Ormlite 中是可能的——但我没有在文档中找到它。

请推荐一个框架来创建我的 poco 类,以防 ORMLite 不支持此功能(我不想用 EF 生成我的 pocos!)

谢谢!

0 投票
4 回答
5023 浏览

c# - 我应该将哪个 ORM 与 ServiceStack 和现有数据库一起使用

我目前正在开发一个 Web 服务,它提供对业务对象的基本 CRUD 操作。该服务将由当前使用直接数据库访问的遗留应用程序使用。

由于 ServiceStack 的架构很棒,我决定使用 ServiceStack 而不是 WCF。

但是知道我正在尝试决定是否使用 OrmLite、nHibernate 或 Entity Framework 来访问现有的遗留数据库。

ORM 的要求如下

  • 支持连接
  • 支持存储过程

我已经尝试过 OrmLite(因为它很快并且已经包含在 ServiceStack 中)。我设法加入两个表的唯一方法是使用 SQL(不是一个选项)。有没有更好的办法?

上面的示例显示了一个简单的业务对象。大多数其他人需要使用许多过滤器进行插入、更新、删除、多个连接和读取。

0 投票
1 回答
3722 浏览

c# - 使用自定义查询来选择其 ID 存在于 ID 列表中的项目

在 dapper 中,您可以执行以下操作:

尝试在 ormlite 中做同样的事情:

返回错误。Dapper 这样创建查询:

ormlite 在哪里生成:

方括号在 MySQL 中无效。可以在 ormlite 中做到这一点吗?

当我尝试使用匿名类列出参数时,如在 dapper 示例中,它找不到第二个参数。

0 投票
1 回答
1298 浏览

c# - 对 OrmLite 的 SQL Server 特定类型支持

我刚刚了解了一种天才类型,它可以简化我的很多工作,但看起来我首选的 ORM 无法识别它。

是否有让 ServiceStack OrmLiteHierarchyId在 SQL Server 中识别的解决方法?关于修改哪些文件的任何建议以及如何进行的任何提示?

编辑 :

这是对问题的更好说明。我有以下课程:

SqlHierarchyId是一种自定义 SQL Server 数据类型。OrmLite 将为它生成以下类:

第一次 MyClass 渲染

有趣的是,我可以在[StringLength(255)]属性上使用属性,它会获取varchar(255)类型:

第二次 MyClass 渲染

我在这里手动更改了表格并添加了列数据类型以展示差异。请注意第三列的数据类型:

SqlHierarchyId

拥有一个varchar表示对于其他 DBMS 来说非常好,因为它可以在 C# 中转换,但对于 SQL Server,最好让它匹配相应的数据类型。hierarchyid这将使视图的创建更容易(由于数据类型的内置函数)。

我知道 EF4 不支持该类型(不确定 5)。我还浏览了GitHub 上的OrmLiteDialectProviderBase.cs文件,我可以看到支持的 ADO.NET 数据类型列表。

我的简单问题是:这是 ADO.NET 的一个强大限制,还是可以在 OrmLite 中看到?如果有任何建议,我愿意帮助扩展这部分。

0 投票
0 回答
95 浏览

c# - 在服务堆栈ormlite中实现复合主键?

如何实现代表数据库中具有复合主键的表的 poco 类?所以我有 id1 和 id2,它们共同构成了主键。这里没有真正的自动增量 ID。

0 投票
2 回答
6167 浏览

repository-pattern - 使用 ServiceStack.ORMLite 的存储库模式中的事务

我正在使用 ServiceStack.ORMLite 实现存储库模式,如下所示:

但是当我需要在 DbTransaction 中扭曲一些 DB 操作时,我不知道如何处理 DbTransaction。它看起来TransactionScope是一个解决方案,但我不知道这是否太重了。