代码之家  ›  专栏  ›  技术社区  ›  David Murdoch

LINQ到SQL的默认值

  •  5
  • David Murdoch  · 技术社区  · 15 年前

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

    有没有办法 自动 创建my.dbml(类似于linq to sql或sqlmetal)并让它检测 NOT NULL 有默认值的列?

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


    我的澄清 需要 它的目的是:

    我有很多桌子 DateCreated DateModified 田野和一些 bit 像枚举一样( int )具有默认值的列;所有这些列都应该是 not null .

    在更改数据库之后,我需要重新生成.dML(刷新)……所以(re)设置自动生成(或) 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 回复  |  直到 15 年前
        1
  •  -1
  •   Bonshington    15 年前
    this.DateCreated ?? DateTime.UtcNow
    

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