2015-04-26 62 views
0

我需要從此類的數據註釋「tblAccounts」和「AccountNumber」中返回別名。它使用ServiceStack ORM Lite。如何從ServiceStack ORMLite中檢索數據註解別名(「tablename」)和別​​名(「字段名稱」)?

[Alias("tblAccounts")] 
    [Schema("task")] 
    public class Account : IHasId<int> 
    { 
     [Alias("AccountNumber")] 
     public int Id { get; set; } 
     [Required] 
     public int UnitId { get; set; } 
     [Required] 
     public int OldAccountNumber { get; set; } 
     [Required] 
    } 

回答

2

您可以從OrmLite的ModelDefinition是對每一個POCO表創建,e.g查詢此:

var modelDef = typeof(Account).GetModelMetadata(); 

var tableName = modelDef.ModelName; 
var idName = modelDef.PrimaryKey.FieldName; 

其中在兩種情況下會返回[Alias]如果它存在。

+0

我在客戶端應用程序中使用我的Model類,在這種情況下,我不使用它們與OrmLite SQL Server,但我重複使用相同的類從MS Access(手動使用OLEDB)加載它們,因爲我有複製工具,我正在創建,我不想再聲明相同的模型類....但在我的客戶端應用程序中,我不想聲明程序集「ORMLITE」是必需的方法.GetModelMetadata() ,我如何將表名和id傳遞給我的客戶端應用程序而不是聲明任何ORMLITE引用? –

+0

@RogerOliveira然後,您需要使用反射來獲取運行時的屬性,例如, 'typeof(Account).GetCustomAttributes()' – mythz

+0

謝謝,完美! –