首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ServiceStack ORMLite

ServiceStack ORMLite
EN

Stack Overflow用户
提问于 2012-12-22 04:55:15
回答 1查看 865关注 0票数 1

我们正在将基于SProc的解决方案迁移到ORMLite上,到目前为止还相当顺利。今天我写了以下方法:

代码语言:javascript
复制
    public AppUser GetAppUserByUserID(int app_user_id)
    {
        var dbFactory = new OrmLiteConnectionFactory(this.ConnectionString, SqlServerOrmLiteDialectProvider.Instance);
        AppUser item = null;

        var rh = new RedisHelper();
        var id=  CacheIDHelper.GetAppUserID( app_user_id );
        item = rh.Get<AppUser>(id);

        if (item == null)
        {
            try
            {
                using (var db = dbFactory.OpenDbConnection())
                {
                    item = db.Single<AppUser>("application_user_id={0}", app_user_id);

                    rh.Set<AppUser>(item, id);
                }
            }
            catch (Exception ex)
            {
                APLog.error(ex, "Error retrieving user!");
            }
        }
        return item;
    }

我删除了一些无关的字段,但它们基本上是:

代码语言:javascript
复制
[Alias("application_user")]
public class AppUser : APBaseObject
{

    [Alias("application_user_id")]
    [AutoIncrement]
    public int? UserID
    {
        get;
        set;
    }

    [Alias("application_user_guid")]
    public string UserGUID
    {
        get;
        set;
    }

 //MORE FIELDS here.

}

挑战在于,它们唯一填充的字段是ID字段,而我已经知道该ID,因为我正在将它传递给该方法。

我确实获得了最后调用的SQL,并直接在DB上运行它,所有字段都被正确引用。

我单步执行了调试器中的代码,除了唯一返回的字段是ID之外,一切都正确返回。

有什么想法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-24 01:57:33

我遇到了一个类似的问题,这是由于我的类方法没有正确地映射到数据库造成的。我的问题是由db中的nullable int字段引起的,类方法被定义为'int‘而不是'int?’。

也许你也有类似的问题?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13997068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档