Search code examples
servicestackormlite-servicestack

ServiceStack ORMLite


We are migrating our SProc based solution over to ORMLite, and so far has been pretty painless. Today I wrote the following method:

    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;
    }

I have remove some of the extraneous fields, but they are basically:

[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.

}

The challenge is that they only field that is populate is the ID field, AND I already know that ID because I am passing it into the method.

I did get the last SQL called and ran that against the DB directly and all of the fields were being referenced correctly.

I stepped through the code in the debugger, and everything came back correctly, except that the only field returned was the ID.

Thoughts?


Solution

  • I had a similar issue which was caused by my class methods not mapping to the db properly. My exact issue was caused by a nullable int field in the db and the class method was defined as an 'int' instead of 'int?'.

    Perhaps you have a similar issue?