我有一些看起来像这样的摘要对象......
public class ObjectSummary : ISummary
{
public int Id { get; set;}
public string Name { get; set;}
...
// other fields
}
Run Code Online (Sandbox Code Playgroud)
使用案例如下所示:
public ISummary Summarize()
{
return new ObjectSummary
{
Id = _id,
Name = _name,
....
// etc with other fields
};
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试重构所有这样的实例(使它们成为不可变的):
public class ObjectSummary : ISummary
{
public ObjectSummary(int id, string name,..., /* other params*/)
{
Id = id;
Name = name;
}
public int Id { get; private set;}
public string Name …Run Code Online (Sandbox Code Playgroud) 我目前正在使用SQL CLR进行SQL Server中的时区转换,因为它是一个不安全的程序集,我无法在Azure中运行它.我们支持内部部署和Azure是业务需求.我正在考虑为Azure使用AT TIME ZONE功能并保留SQL CLR用于内部部署.
我希望能够添加一个使用'AT TIME ZONE'的sql函数(如果可用的话,否则会调用程序集).
我可以在运行sql之前使用语法运行测试查询来创建函数,如果出现错误则创建另一个...但这意味着如果加载到较旧的sql server版本中,一个实例的备份可能包含错误不支持语法(例如2016年至2014年).
测试的最佳实践方法是什么(最好是在SQL语句本身内),数据库是否支持这种语法?