使用 ORMLite 和 C# 从模型中检索 属性 的别名
Retrieving alias of a property from a Model with ORMLite and C#
我有以下 class:
[Schema("dbo")]
[Alias("accesses")]
public class Acces{
[Alias("id")]
public int Id { get; set; }
[Alias("device_id")]
public string DeviceId { get; set; }
[Alias("client_id")]
public int ClientId { get; set; }
[Alias("person_uid")]
public string PersonUid { get; set; }
}
如何以编程方式检索 PersonUid
的 ORMLite
Alias
?
我尝试使用 typeof(Access).GetModelMetadata()
(也将其丢弃),但没有成功...
我在我的项目中为此做了一个助手。希望这对您有所帮助!
public static class OrmLiteExtensions
{
public static string GetQuotedName<T>(string propertyName, bool appendTablePrefix = true)
{
var sqlFieldName = string.Empty;
var modelDefinition = typeof(T).GetModelMetadata();
if (appendTablePrefix)
sqlFieldName = OrmLiteConfig.DialectProvider.GetQuotedName(modelDefinition.ModelName) + ".";
sqlFieldName += modelDefinition.FieldDefinitions.First(p => p.Name == propertyName).GetQuotedName(OrmLiteConfig.DialectProvider);
return sqlFieldName;
}
}
用法:
OrmLiteExtensions.GetQuotedName<Acces>(nameof(Acces.DeviceId), false); // pass true in second parameter to prefix with table name
我有以下 class:
[Schema("dbo")]
[Alias("accesses")]
public class Acces{
[Alias("id")]
public int Id { get; set; }
[Alias("device_id")]
public string DeviceId { get; set; }
[Alias("client_id")]
public int ClientId { get; set; }
[Alias("person_uid")]
public string PersonUid { get; set; }
}
如何以编程方式检索 PersonUid
的 ORMLite
Alias
?
我尝试使用 typeof(Access).GetModelMetadata()
(也将其丢弃),但没有成功...
我在我的项目中为此做了一个助手。希望这对您有所帮助!
public static class OrmLiteExtensions
{
public static string GetQuotedName<T>(string propertyName, bool appendTablePrefix = true)
{
var sqlFieldName = string.Empty;
var modelDefinition = typeof(T).GetModelMetadata();
if (appendTablePrefix)
sqlFieldName = OrmLiteConfig.DialectProvider.GetQuotedName(modelDefinition.ModelName) + ".";
sqlFieldName += modelDefinition.FieldDefinitions.First(p => p.Name == propertyName).GetQuotedName(OrmLiteConfig.DialectProvider);
return sqlFieldName;
}
}
用法:
OrmLiteExtensions.GetQuotedName<Acces>(nameof(Acces.DeviceId), false); // pass true in second parameter to prefix with table name