我們正在將基於SProc的解決方案遷移到ORMLite,並且迄今爲止一直非常輕鬆。今天,我寫了下面的方法:ServiceStack ORMLite
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;
}
我有去除一些多餘的欄位,但他們基本上都是:
[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,並直接對數據庫運行,並且所有的字段都被正確引用。
我在調試器中遍歷代碼,並且所有內容都正確返回,除了返回的唯一字段是ID。
想法?
仍然有這個問題...任何幫助? –