标签: ormlite-servicestack

使用Sqlite64作为内存数据库的ServiceStack OrmLite导致缺少auth表

我试图在我的单元测试中使用Sqlite作为内存数据库和ServiceStack ORMlite.

如果我用SQLite保存到文件运行我的测试,即.使用connectionstring

"Data Source=|DataDirectory|unittest.db;Version=3;"
Run Code Online (Sandbox Code Playgroud)

,它工作正常,ServiceStacks生成auth表

userRepository.CreateMissingTables(); 
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用此连接字符串将SQLite用作内存数据库时

":memory:"
Run Code Online (Sandbox Code Playgroud)

说的时候我有例外

SQLite error
no such table: UserAuth
Run Code Online (Sandbox Code Playgroud)

我第一次尝试通过这样做来获取用户

userRepository.GetUserAuthByUserName(...)
Run Code Online (Sandbox Code Playgroud)

这是在我调用了userRepository.CreateMissingTables()之后,如果我切换到使用带有文件数据库的SQLite,它就能正常工作.有谁知道问题可能是什么?(由于Ormlite 3.9.4中对ORM lite版本1.0.65.0的错误引用,我不得不降级到ORMLite版本3.9.0)

sqlite servicestack ormlite-servicestack

4
推荐指数
1
解决办法
2120
查看次数

如何使用OrmLite获得固定大小而不是null varchar?

String在Poco类中声明属性时,OrmLite将varchar(8000) NULL在数据库中为其生成一列.例如,我有以下类和生成的表:

在此输入图像描述

在此输入图像描述

我想知道如何指定该字段的长度.对于FirstName而言,拥有8000个字符是没有意义的,例如,我该如何强迫NOT NULL?在UserNamePassword列应该始终有值.

c# sql varchar notnull ormlite-servicestack

4
推荐指数
1
解决办法
1091
查看次数

ormlite - 生成poco文件

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

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

谢谢!

c# ormlite-servicestack

4
推荐指数
1
解决办法
2561
查看次数

ServiceStack OrmLite中QueryById()和GetById()之间的区别

任何人都可以解释QueryById()和GetById()之间的区别,因为它们都具有相同的签名.并且有很多常见的函数以Query和Get开头,可能会有一些我认为缺少的主要区别.

servicestack ormlite-servicestack

4
推荐指数
1
解决办法
1250
查看次数

使用ServiceStack.OrmLite执行原始SQL

我使用MS SQL Server工作ServiceStack.OrmLite.我想对数据库执行原始SQL,但原始文档包含如何仅使用SELECT语句执行此操作的说明.这对我来说还不够.

我无法找到运行任何简单的方法:

UPDATE table1
SET column1 = 'value1' 
WHERE column2 = value2
Run Code Online (Sandbox Code Playgroud)

使用,例如:

var two = db.Update(@"UPDATE table1
    SET column1 = 'value1' 
    WHERE column2 = value2");
Run Code Online (Sandbox Code Playgroud)

使用db.Update()或db.Update <>运行此表达式会产生不一致的错误,例如

关键字"UPDATE"附近的语法不正确.

我想使用原始sql,因为我的真实UPDATE表达式使用JOIN.

sql servicestack ormlite-servicestack

4
推荐指数
1
解决办法
2813
查看次数

ServiceStack OrmLite如何实现外键/相关属性的自动设置?

我创建了以下示例来测试外键,到目前为止,它运行良好.我希望能够做的是使用我构建的这个框架来设置关系的属性,并在保存Parent时保存子对象并自动设置PrimaryKey和Foreign Key.DataManager类公开Connection

 public class DataManager
{

    DataManager()
    {
        OrmLiteConfig.DialectProvider = SqliteDialect.Provider;
        ConnectionString = SqliteFileDb;
        updateTables();
    }

    private void updateTables()
    {
        using (var dbConn = OpenDbConnection())
        {
            dbConn.DropAndCreateTable<Person>();
            dbConn.DropAndCreateTable<PhoneNumber>();
        }
    }
    public static string SqliteFileDb = "~/App_Data/db.sqlite".MapAbsolutePath();
    private static DataManager manager;
    public static DataManager Manager {

        get
        {
            if (manager == null)
                manager = new DataManager();
            return manager;
        }
    }
    public IDbConnection InMemoryDbConnection { get; set; }
    public IDbConnection OpenDbConnection(string connString = null)
    {
        connString = ConnectionString;
        return connString.OpenDbConnection();
    }
    protected …
Run Code Online (Sandbox Code Playgroud)

foreign-key-relationship servicestack ormlite-servicestack

4
推荐指数
1
解决办法
2085
查看次数

使用ServiceStack ORMLite将DataTable传递给SP

我必须调用存储过程,但传递一个数据表(一个iEnumerable)作为参数.

SQL服务器上的我的SP将此参数视为:

@LIST_USERS dbo.LIST_USERINFO_TYPE READONLY
Run Code Online (Sandbox Code Playgroud)

并且类型定义为:

CREATE TYPE [dbo].[LIST_USERINFO_TYPE] AS TABLE(
   [ID_USER] [int] NOT NULL,
   [ID_DATA] [int] NOT NULL,
   [HEADER_TXT] [varchar](100) NULL)
Run Code Online (Sandbox Code Playgroud)

然后,在调用者方面,我以这种方式创建参数:

list.Add(new UserInfoItem { IdUser = 401, IdData = 3, HeaderTxt = "" });
list.Add(new UserInfoItem { IdUser= 402, IdData= 2, HeaderTxt= "gotcha" });
list.Add(new UserInfoItem { IdUser= 403, IdData= 1, HeaderTxt= "pacific rim" });

dbConn.StoredProcedure(sp,
  new
    {
      LISTA_QUESTIONARIO = DomandeRisposteList
    });
Run Code Online (Sandbox Code Playgroud)

当我启动项目实际上它停止KeyNotFoundException尝试

name.DbType = OrmLiteConfig.DialectProvider.GetColumnDbType(propertyInfo.PropertyType);
Run Code Online (Sandbox Code Playgroud)

ServiceStackExtension.cs

我怎样才能做到这一点?

c# servicestack ormlite-servicestack

4
推荐指数
1
解决办法
998
查看次数

ServiceStack.OrmLite从存储过程中获取多个结果集

我一直在使用SqlList()从SP接收结果集,这很方便.

var people = db.SqlList<Person>("EXEC GetRockstarsAged @age", new { "age", 42 });
Run Code Online (Sandbox Code Playgroud)

但是如何使用此OrmLite从单个SP获取多个结果集?使用上述方法似乎只检索第一个结果集.

servicestack ormlite-servicestack

4
推荐指数
1
解决办法
867
查看次数

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

我正在使用ServiceStack OrmLite SqlServer v3.9.71并具有以下连接字符串:

<add key="ConnStr" value="Data Source=my-db;Initial Catalog=Users;Integrated Security=SSPI;Connection Timeout=666"/>
Run Code Online (Sandbox Code Playgroud)

并使用以下命令运行查询,需要2-3分钟才能返回:

using (Db)
{
    var result = new ResultDto();

    Parallel.Invoke(
       () => { result.StatOne = Db.Dictionary<DateTime, int>(query1); },
       () => { result.StatTwo = Db.Dictionary<DateTime, int>(query2); }
    );

    return result;
}
Run Code Online (Sandbox Code Playgroud)

当在Db对象上放置一个断点时,我可以看到连接超时,666但我无法弄清楚如何在每次运行上面时设置/增加命令超时它30在默认超时的秒后超时.

有任何想法吗?

.net c# sql-server connection-string ormlite-servicestack

4
推荐指数
1
解决办法
2086
查看次数

ServiceStack可以通过System.DateTime值进行查询吗?

我正在评估ServiceStack以确定它是否适用于通用REST服务器构建目的,并且我正在尝试扩展Northwind演示,我已在本地更新以使用ServiceStack的4.0.44.我调整的代码是到位桶这里,倾倒从GIT中汞,然后用我自己的变化增加.

我的代码和上游serviceStack.Examples northwind演示之间的区别是以下新增内容:

A .../date/Route已添加到Orders的ServiceModel.Operations对象:

 namespace ServiceStack.Northwind.ServiceModel.Operations
 {
     ...

     [Route("/orders")]
     [Route("/orders/date/{ByDate}")] // ADDED!
     [Route("/orders/page/{Page}")]
     [Route("/customers/{CustomerId}/orders")]
    public class Orders
    {
        public int? Page { get; set; }
        public DateTime? ByDate { get; set; } // ADDED!
        public string CustomerId { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

然后这个案例的处理程序被添加到服务中,它在运行时因奇怪的LINQ故障而爆炸: variable 'o' of type 'ServiceStack.Northwind.ServiceModel.Types.Order' referenced from scope '', but it is not defined...

Source = System.Core



namespace ServiceStack.Northwind.ServiceInterface
{
    public class OrdersService : Service
    {
        private const int PageCount = 20; …
Run Code Online (Sandbox Code Playgroud)

c# servicestack ormlite-servicestack

4
推荐指数
1
解决办法
466
查看次数