问题标签 [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 投票
0 回答
757 浏览

parameterized-query - 如何指定 ServiceStack.OrmLite 参数长度

使用参数化查询似乎将参数的长度设置为传入的值的长度。

做类似的事情:

导致参数为 NVARCHAR(4),因此具有不同长度的下一个查询会丢失缓存计划并创建一个新计划。

我怎样才能改变它,让它只使用我指定的长度。

0 投票
0 回答
213 浏览

c# - 使用 ORM 时保持类和表模式同步

我对 ORM 没有太多经验。我试图找出处理从映射类中添加/删除属性的最佳方法,最好是自动和通用的方式。

我正在使用 ServiceStack.OrmLite 和 SQLite。

数据库的目的是文档存储。没有外键/参照完整性问题。

例如

使用列 Bar、Baz 创建表 Foo。

在理想的世界中,Foo 类永远不会改变,所以我不必担心这一点,但实际上它可以。

假设 Foo 还需要一个 Quz 属性。

读取很好,Quz 只是返回为空,但插入失败,因为没有 Quz 列。这是有道理的。

可以说不再需要 Baz。

读取/插入工作正常,但是基础表仍然会有 Baz 列,这有点乱。

鉴于它是一个服务器应用程序,并且不会经常重新启动,我考虑并忽略了几件事:

  • 开始时,如果 Foo 表存在,将其读入临时存储,删除并重新创建 Foo(意味着将使用正确的模式创建表),然后重新插入数据。这似乎工作正常,并且可以使模式与类保持同步,但是它太慢了。

  • 开始时,查询基础表以获取其列定义并使用反射来确定 Foo 类的列实际上应该是什么。根据需要添加/删除列。我很确定我可以让这种方法发挥作用,但它比理想更复杂,而且我不相信这是一个好主意。

0 投票
2 回答
4727 浏览

servicestack - servicestack ormlite 部分更新

我正在使用 ServiceStack Ormlite 对数据库表进行部分更新。

我有一个模型:

但我只想更新字段 Property1 和 Property2。

有人知道怎么做这个吗?

谢谢。

0 投票
1 回答
1458 浏览

c# - ServiceStack ORMLite 对视图的支持

我在这里阅读了mythz 的帖子,内容是关于 ORMLite 如何从 SQL 中读取任何内容并将其放入相同形状的 POCO 中。这太棒了。

另一方面,ORMLite 在将它们保存回数据库时如何处理这些“视图 POCO”?由于它们不是表,它们可能是视图,也可能只是任何类似的 sql 选择查询:

0 投票
2 回答
1884 浏览

servicestack - servicestack ormlite 和同一张表的外键

我有一个链接表,一些链接将是子链接,引用父链接 ID 但是我无法理解 servicestack ormlite 并填充子属性,当获取所有链接列表时,所有子链接将。

这是我的模型:

有任何想法吗 ?

0 投票
2 回答
494 浏览

sqlite - 无法使 ServiceStack.OrmLite.Sqlite64 示例正常工作

我在 .NET 4.5 下运行 VS 2012 Desktop Express。通过 NuGet,我获得了 ServiceStack 和 ServiceStack.OrmLite.Sqlite64。然后,我使用位于http://code.google.com/p/servicestack/wiki/OrmLite的非常简单的示例来编写以下内容。

上面的代码可以编译,但是我得到一个运行时异常,这似乎表明我使用的 System.Data.Sqlite 版本与编译 ServiceStack.OrmLite.SqliteNET 的版本不同。NuGet 提供给我的版本是 1.0.81.0,而运行时异常似乎正在寻找版本 1.0.65.0。

我是使用 NuGet 的新手,所以我可能做错了什么,但是我无法确定我做错了什么。协助将不胜感激。

0 投票
1 回答
4372 浏览

sql-server - 具有多个数据库服务器的 ServiceStack OrmLite

我正在围绕 servicestack 框架构建一个应用程序,并且需要能够访问 Oracle 和 MS Sql Server 中的数据。这是否可以使用 ORMLite,似乎我只能为应用程序设置一种方言,或者我错过了什么?

0 投票
1 回答
931 浏览

c# - 在 where 子句中使用整数主键的 SQLite 选择查询返回空结果

我正在使用 ServiceStack.OrmLite 将一些对象保存到带有主键“ID INTEGER AUTOINCREMENT”的 SQLite 数据库中。一切正常。

但是当我尝试通过查询“SELECT * FROM Table WHERE (ID = 112) OR (ID = 113)”来加载对象时,结果为空。

如果我将 where 子句更改为“(ID+0 = 112) OR (ID+0 = 113)”,则结果中有 2 行。当我使用 sqlite 命令行工具浏览数据库时,我看到所有记录都在这里,列类型为 INTEGER,所有行的 typeof(ID) 返回“整数”。可能有什么问题?

0 投票
1 回答
1381 浏览

ormlite-servicestack - ORMLite 方言

我已经按照这个[问题](http://stackoverflow.com/questions/13691575/servicestack-ormlite-with-mutliple-database-servers)给出的答案,但我仍然得到一个错误。错误是:

{System.Data.SqlClient.SqlException(0x80131904):无效的对象名称“双重”。在 System.Data.SqlClient.SqlConnection.OnError(SqlException 异常,布尔 breakConnection,操作1 wrapCloseInAction) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction) 在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) 在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject state&Obj, Boolean dataReady) 在 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData() 在 System.Data.SqlClient.SqlDataReader.get_MetaData() 在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) 在 System.Data System.Data 中的 .SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior,RunBehavior runBehavior,布尔 returnStream,布尔异步,Int32 超时,任务和任务,布尔异步写入)。SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior,RunBehavior runBehavior,布尔返回流,字符串方法,TaskCompletionSource1 completion, Int32 timeout, Task& task, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) at System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior) at ServiceStack.MiniProfiler.Data.ProfiledDbCommand.ExecuteDbDataReader(CommandBehavior behavior) at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader() at ServiceStack.OrmLite.OrmLiteReadExtensions.ExecReader(IDbCommand dbCmd, String sql) in C:\src\ServiceStack.OrmLite\src\ServiceStack.OrmLite\OrmLiteReadExtensions.cs:line 48 at ServiceStack.OrmLite.OrmLiteReadExtensions.GetScalar[T](IDbCommand dbCmd, String sql, Object[] sqlParams) in C:\src\ServiceStack.OrmLite\src\ServiceStack.OrmLite\OrmLiteReadExtensions.cs:line 498 at ServiceStack.OrmLite.Oracle.OracleOrmLiteDialectProvider.GetNextValue(IDbCommand dbCmd, String sequence, Object value) at ServiceStack.OrmLite.Oracle.OracleOrmLiteDialectProvider.ToInsertRowStatement(Object objWithProperties, IList1 insertFields, IDbCommand dbCommand) 在 ServiceStack.OrmLite.OrmLiteDialectProviderBase 1.ToInsertRowStatement(Object objWithProperties, IDbCommand command) in C:\src\ServiceStack.OrmLite\src\ServiceStack.OrmLite\OrmLiteDialectProviderBase.cs:line 439 at ServiceStack.OrmLite.OrmLiteWriteExtensions.Insert[T](IDbCommand dbCmd, T[] objs) in C:\src\ServiceStack.OrmLite\src\ServiceStack.OrmLite\OrmLiteWriteExtensions.cs:line 394 at ServiceStack.OrmLite.OrmLiteWriteConnectionExtensions.<>c__DisplayClass421.b__41(IDbCommand dbCmd) 在 C:\src\ServiceStack.OrmLite\src\ServiceStack.OrmLite\OrmLiteWriteConnectionExtensions.cs:ServiceStack.OrmLite.ReadConnectionExtensions.Exec( IDbConnection dbConn, Action 1 filter) in C:\src\ServiceStack.OrmLite\src\ServiceStack.OrmLite\Expressions\ReadConnectionExtensions.cs:line 55 at ServiceStack.OrmLite.OrmLiteWriteConnectionExtensions.Insert[T](IDbConnection dbConn, T[] objs) in C:\src\ServiceStack.OrmLite\src\ServiceStack.OrmLite\OrmLiteWriteConnectionExtensions.cs:line 164 at ServiceStack.ServiceInterface.Auth.OrmLiteAuthRepository.<>c__DisplayClass5.<CreateUserAuth>b__4(IDbConnection db) at ServiceStack.OrmLite.OrmLiteConnectionFactoryExtensions.Run[T](IDbConnectionFactory connectionFactory, Func2 runDbCommandsFn) in C:\src\ServiceStack.OrmLite\src\ServiceStack.OrmLite\OrmLiteConnectionFactory.cs:ServiceStack.ServiceInterface.Auth.OrmLiteAuthRepository.CreateUserAuth(UserAuth newUser, String password) 在 ServiceStack.ServiceInterface 的第 171 行.Auth.RegistrationService.OnPost(注册请求)在ServiceStack.ServiceInterface.RestServiceBase`1.Post(TRequest请求)ClientConnectionId:55977ae9-775d-474f-a543-d4cdfeb66a0d}

我正在使用以下代码进行设置:

不久之后,我建立了一个与 Oracle 服务器上的空缺数据库的连接:

与 vacancies 数据库的连接工作正常,但是当我尝试在 auth 数据库上注册用户时,出现上述错误。在我看来,它正在坚持甲骨文方言?

0 投票
2 回答
286 浏览

c# - 从基于消息的请求中构建 where 过滤器

我有一个小请求对象要过滤。

我需要为 db 请求建立 where 过滤器。

使用实体框架,我能够像这样构建 Where 语句。

鉴于实体框架查询是延迟加载的,但不是 OrmLight 查询,我不确定如何为 OrmLight 构建 where 语句。