使用Linq to SQL的数据库默认值代码

时间:2010-05-12 07:03:12

标签: linq-to-sql sql-server-2008 dynamic-data

我正在使用带有linq到SQL和SQL Server 2008的动态数据。

我有一个GUID列,使用newguid()从默认值中获取其值。当我在设计师中将IsDbGenerated设置为true时,它就像一个魅力。

但是当我更新表时,此属性再次设置为false。所以我将它添加到元数据中。由于某种原因它没有被拾取,“00000000-0000-0000-0000-000000000000”被插入数据库中。正在接收显示名称和只读更改。

我错过了什么?

  

[MetadataType(typeof运算(CMS_Data_HistoryMetadata))]       公共部分类CMS_Data_History       {

}

[TableName("Content")]
public class CMS_Data_HistoryMetadata
{
    [DisplayName("Pagina Title")]
    public object pageTitleBar { get; set; }


    [ReadOnly(true)]
    [DisplayName("Versie")]
    public object version_date { get; set; }

    [ColumnAttribute(IsDbGenerated = true)]       
    public object entity_id;

}

1 个答案:

答案 0 :(得分:0)

我通过扩展部分插入更新类来解决问题,并检查guid是否已填充

  部分无效   InsertCMS_Data_History(CMS_Data_History   实例)           {

        if(instance.entity_id == Guid.Empty)
        {
            instance.entity_id = Guid.NewGuid();
        }
        this.ExecuteDynamicInsert(instance);

    }

    partial void UpdateCMS_Data_History(CMS_Data_History
     

实例)           {               if(instance.version_date == DateTime.MinValue)               {                   instance.version_date = DateTime.Now;               }               this.ExecuteDynamicUpdate(实例);           }