LINQ to SQL默认值

时间:2010-10-05 21:51:02

标签: c# .net sql-server linq linq-to-sql

我们都知道Linq to SQL(和SQLmetal / exe)实际上是一个“原型”质量的产品(它缺少模式“刷新”和使用默认值检测空列的基本功能)。

有没有办法自动创建我的.dbml(类似于LINQ to SQL或SQLmetal)并让它检测具有默认值的NOT NULL列?

要求:它需要像linq-to-sql或sqlmetal一样“容易”生成。


澄清我 需要 的内容:

我有多个包含DateCreatedDateModified字段的表格,以及一些带有默认值的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' ...出错)。我真的看到没有理由它应该编译......但我还是试了一下。也许我只是不理解他的例子中代码的上下文。

1 个答案:

答案 0 :(得分:-1)

this.DateCreated ?? DateTime.UtcNow

??表示如果左侧为空,则使用右侧