我们都知道Linq to SQL(和SQLmetal / exe)实际上是一个“原型”质量的产品(它缺少模式“刷新”和使用默认值检测空列的基本功能)。
有没有办法自动创建我的.dbml(类似于LINQ to SQL或SQLmetal)并让它检测具有默认值的NOT NULL
列?
要求:它需要像linq-to-sql或sqlmetal一样“容易”生成。
澄清我 需要 的内容:
我有多个包含DateCreated
和DateModified
字段的表格,以及一些带有默认值的bit
和类似枚举(int
)列的表格;所有这些都应该是not null
。
我需要在更改数据库后重新生成(“刷新”).dbml ...所以(重新)将自动生成(或Auto-Sync)属性设置为True
是几乎每次我更新架构时都不是我真正关心的事情。
以下代码(基于Handling Default Values With LINQ to SQL):
namespace Project.Data
{
public partial class ProjectDataContext
{
partial void OnCreated()
{
if (this.DateCreated == null)
{
this.DateCreated = DateTime.UtcNow;
}
}
}
}
无法编译(... does not contain a definition for 'DateCreated' ...
出错)。我真的看到没有理由它应该编译......但我还是试了一下。也许我只是不理解他的例子中代码的上下文。
答案 0 :(得分:-1)
this.DateCreated ?? DateTime.UtcNow
??表示如果左侧为空,则使用右侧