我正在使用带有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; }
答案 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(实例); }