Здравствуйте, Danchik, Вы писали:
VC>>Здравствуйте, Shmj, Вы писали:
S>>>Хотя бы раз вам помогла возможность писать динамически типизируемый код на C#? Что это был за случай?
VC>>Про Dapper не слышал?
D>Я, например, слышал. Только вот вменяемый способ использования dynamic представить не могу, разве что результат квери сразу в json.
Мда.
public string GetShortVersion(IDbConnection connection, int? commandTimeout)
{
dynamic row = connection.QueryFirst(@"
Select
@@MICROSOFTVERSION Ver32Bit,
SERVERPROPERTY('ProductLevel') Level,
SERVERPROPERTY('ProductUpdateLevel') UpdateLevel",
commandTimeout: commandTimeout);
int ver32Bit = row.Ver32Bit;
string level = row.Level;
string updateLevel = row.UpdateLevel;
int v1 = ver32Bit >> 24;
int v2 = ver32Bit >> 16 & 0xFF;
int v3 = ver32Bit & 0xFFFF;
var ver = new Version(v1, v2, v3);
var ret = new StringBuilder(ver.ToString());
if (!string.IsNullOrEmpty(level) && level != "RTM") ret.Append('-').Append(level);
if (!string.IsNullOrEmpty(updateLevel)) ret.Append('-').Append(updateLevel);
return ret.ToString();
}