LINQ to SQL默认值

Dav*_*och 6 .net c# linq sql-server linq-to-sql

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

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

要求:它需要像linq-to-sql或sqlmetal一样"简单"生成.


澄清我需要它:

我有很多表DateCreatedDateModified字段以及一些默认值的bitenum-like(int)列; 所有这些应该是和not null.

我需要在更改数据库后重新生成("刷新").dbml ...所以(重新)将自动生成(或自动同步)属性设置True为不是我真正关心的几乎每个我更新架构的时间.

以下代码(基于使用LINQ to SQL处理缺省值):

namespace Project.Data
{
    public partial class ProjectDataContext
    {
        partial void OnCreated()
        {
            if (this.DateCreated == null)
            {
                this.DateCreated = DateTime.UtcNow;
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

不编译(错误... does not contain a definition for 'DateCreated' ...).我真的认为它没有理由应该编译......但我还是试了一下.也许我只是不理解他的例子中的代码的上下文.

Bon*_*ton -1

this.DateCreated ?? DateTime.UtcNow
Run Code Online (Sandbox Code Playgroud)

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

  • 这是真的。但其实并不重要。 (2认同)