Tag: ormlite servicestack

ServiceStack OrmLite命令超时

使用IDbConnection.ExecuteSql时如何设置命令超时? IDbConnection db = ConnectionFactory.OpenDbConnection(); db.ExecuteSql(“…”); 如果我使用IDbCommand.ExecuteSql(见下文)方法,我可以设置命令超时,但我得到一堆关于弃用方法的警告。 IDbCommand comm = db.CreateCommand() comm.CommandTimeout = 240; comm.ExecuteSql(“…”);

ServiceStack Ormlite:System.InvalidProgramException JIT编译器遇到内部限制

嗨,我正在使用Ormlite运行ServiceStack,我遇到了这个错误。 以前它工作正常。 我不确定我改变了什么导致了这个错误。 我刚刚使用了一个简单的db.Select()调用,它会抛出此错误。 我尝试了各种方法,比如更新nuget包,清理和重建项目等,但它们都不起作用。 System.InvalidProgramException was caught _HResult=-2146233030 _message=JIT Compiler encountered an internal limitation. HResult=-2146233030 IsTransient=false Message=JIT Compiler encountered an internal limitation. Source=ServiceStack.OrmLite StackTrace: at ServiceStack.OrmLite.OrmLiteConfig.get_ExecFilter() at ServiceStack.OrmLite.ReadConnectionExtensions.Exec[T](IDbConnection dbConn, Func`2 filter) at ServiceStack.OrmLite.ReadConnectionExtensions.Select[T](IDbConnection dbConn, Expression`1 predicate) InnerException: 任何人都可以建议可能出错的地方?

如何在ServiceStack.OrmLite中使用参数执行SQL语句?

我想在ServiceStack ormlite中使用paraemeters执行SQL语句 String.Format(“SELECT OBJECT_ID(@name)”, name); 我想要最好的方式。

为什么ServiceStack OrmLite v4中不再存在“Limit()”方法?

在ServiceStack OrmLite v3中你可以这样做: var rows = db.Select().Limit(10)); 要么: var rows = db.Select().Limit(5, 10)); // skips 5 then takes 10 但是我在v4中找不到这些方法了。 我想我可以做以下事情: var rows = db.SelectLazy().Take(10); 但是,如何进行db.Select (不必编写直接SQL)将转换为(例如在SQLite中): SELECT * FROM Employee LIMIT 10; 此外,是否可以为下面写一个等效的查询(再次无需编写直接SQL)? SELECT * FROM Employee ORDER BY Age; 谢谢。

ServiceStack.OrmLite:编写自定义SQL并获取结果集的方法在哪里?

我一直在https://github.com/ServiceStack/ServiceStack.OrmLite上阅读以找到方法,所以我可以执行正常的SQL(字符串命令),并获得结果集,但我认为没有。 我正在测试OrmLite v 4.0.17.0。 在上面的页面中,有一个方法SqlList提到,但我没有这样的方法可用: 我有一个ExecuteSql,但我没有得到任何结果集,只是一个int: 那么,有两个问题: 有没有办法执行自定义查询,一个接受字符串作为参数的方法,然后我返回结果集,行或对象或其他什么? 当我在它时,我如何创建一个“LIMIT”,例如“SELECT * FROM a LIMIT 10”? 这是版本信息:

对OrmLite的SQL Server特定类型支持

我刚刚学会了一种天才类型,它可以简化我的大部分工作,但看起来我的首选ORM无法识别它。 是否有一种解决方法让ServiceStack OrmLite识别SQL Server中的HierarchyId ? 有关要修改哪些文件的任何建议以及任何提示如何继续? 编辑: 这是对问题的更好说明。 我有以下课程: public class MyClass { public int Id { get; set; } public SqlHierarchyId HierarchyId { get; set; } } SqlHierarchyId是自定义SQL Server数据类型。 OrmLite将为它生成以下类: 有趣的是,我可以在属性上使用[StringLength(255)]属性,它将获得varchar(255)类型: 我在这里手动更改了表,并添加了列数据类型来展示差异。 请注意第三列的数据类型: 拥有varchar表示与其他DBMS完全没问题,因为它可以在C#中转换 ,但是对于SQL Server,最好让它与相应的数据类型匹配。 这将使视图的创建更容易(由于hierarchyid数据类型的内置函数)。 我知道EF4不支持这种类型(不确定5)。 我还浏览了GitHub上的OrmLiteDialectProviderBase.cs文件,我可以看到支持的ADO.NET数据类型列表。 我的简单问题是:这是ADO.NET的一个强大限制,还是在OrmLite中可以看到这个? 如果有任何建议,我愿意帮助扩展这部分内容。

如何在OrmLite ServiceStack中增加命令超时?

我正在使用ServiceStack OrmLite SqlServer v3.9.71并具有以下连接字符串: 并使用以下命令运行查询,需要2-3分钟才能返回: using (Db) { var result = new ResultDto(); Parallel.Invoke( () => { result.StatOne = Db.Dictionary(query1); }, () => { result.StatTwo = Db.Dictionary(query2); } ); return result; } 当在Db对象上设置断点时,我可以看到连接超时为666但我无法弄清楚如何设置/增加命令超时每次运行上面它超过30秒后超时这是默认超时。 有任何想法吗?

ServiceStack:测试OrmLite,与NuGet一起安装,但是我收到错误“FileNotFoundException”

我刚刚在Visual Studio 2012中通过NuGet安装了OrmLite(用于MySql)。 安装过程没有任何错误,所有DLL:s似乎都被添加为参考: ServiceStack.Common (3.9.70.0) ServiceStack.Interfaces (1.0.0.0) ServiceStack.Text (3.9.70.0) ServiceStack.OrmLite (3.9.70.0) ServiceStack.OrmLite.MySql (3.9.70.0) 编译没有错误。 但是,当我运行此行时: dbConnCommOrm.CreateTableIfNotExists(); 然后我收到这个错误: 无法加载文件或程序集’ServiceStack.Common,Version = 3.9.69.0,Culture = neutral,PublicKeyToken = null’或其依赖项之一。 该系统找不到指定的文件。 ServiceStack.Common dll引用(通过NuGet)是版本3.9.70.0所以它不是很奇怪它找不到3.9.69.0。 问题是:为什么我需要3.9.69.0才能安装3.9.70.0? NuGet“脚本”(或者有效)是否有问题,或者我错过了什么? 奇怪的是,即使我在上面提到的行上得到一个例外,仍然可以正确创建表“ModuleSettings”! 此外,从GitHub下载ZIP文件并从那里解压缩DLL也不起作用:在ServiceStack.OrmLite-master \ lib中有三个第一个文件(见上文),由于某种原因,我发现ServiceStack.Ormlite.dll in ServiceStack.OrmLite-master \ lib / signed文件夹,但ZIP文件中没有ServiceStack.OrmLite.MySql.dll 。 我还可以补充说,安装旧版本也不起作用。 我试过这个: http : //www.nuget.org/packages/ServiceStack.OrmLite.MySql/3.9.69 PM> Install-Package ServiceStack.OrmLite.MySql -Version 3.9.69 它仍然安装了ServerStack.Common / Text v […]

ServiceStack基准继续:为什么坚持简单(复杂)到JSON会减慢SELECT?

因此,mythz在之前的SO问题中并不喜欢我不那么科学的基准问题,但是因为我想切换到OrmLite,我需要弄清楚它是否很慢,如果是,那么为什么。 在我的“研究”中,我得出结论,复杂的对象,即OrmLite中的JSON,是非常慢的SELECT的罪魁祸首。 因此,我创建了一个仅专注于OrmLite的新项目,并且不与其他任何东西进行比较,这里的目的是看到具有blobbed JSON对象和没有它们之间的差异。 它可以在GitHub上找到: https : //github.com/tedekeroth/ormlitebenchmarking解决方案如下所示: 我使用MySql 5.6在Windows 7,2.6Ghz,24 GB RAM上运行OrmLite 5.1.1,当前没有CPU负载。 应用程序连接到127.0.0.1(root / root)并需要数据库“ormlite”。 我启用了ThrowOnError: OrmLiteConfig.ThrowOnError = JsConfig.ThrowOnError = true; 该应用程序如下所示: 没有数据:只是创建的对象,没有属性有数据 基元:只填充了一些简单的原始属性 Prim + one complex:所有原语如上+一个blobbed复杂对象 完整数据:以上所有+另外2个复杂的blobbed对象 “ 创建”按钮首先在列表中创建10 000个对象,然后使用OrmLite Insert方法保留它们。 时间测量仅针对INSERT进行,而不是创建对象。 public void AddRow(T coreObject) where T : CoreObject { long id = 0; using (var _db = _dbFactory.Open()) { […]

在运行时将属性添加到POCO类

我为我的项目选择了ServiceStack OrmLite ,这是一个纯数据导向的应用程序。 我愿意允许最终用户创建自己的XML格式定义的对象类型,这些格式将用于在运行时使用CodeDOM生成类。 我还将定义应用程序(即User )所需的一些“系统”对象,但我无法预见最终用户将使用的所有属性,因此我正在寻找一种方法来允许扩展我在设计时创建的类。 样品波纹管 public class User { public Guid Uid { get; set; } public String Username { get; set; } public String Password { get; set; } } 最终用户希望拥有Email和Address 。 他应该能够将2个属性添加到上层类,并且整个类将是(OrmLite仍然可以使用它,因为它允许覆盖: public class User { public Guid Uid { get; set; } public String Username { get; set; } public […]