是否可以使用Linq to SQL创建只读属性

时间:2012-03-12 15:18:55

标签: c# linq-to-sql

我在一些表中使用数据库,触发器存储了值。在这种情况下,'lastModifiedDate'和'createdDate'字段。 'lastModifiedDate'字段由触发器更新。使用getdate()命令使用默认值填充'createdDate'字段。

现在在我的程序中,我不想考虑这个领域的价值观。只想阅读展示它们。在所有其他情况下,该值可能保持为空。仅当发生更新错误时,因为Linq想要更新此字段而未设置日期。

是否可以在阻止linq更新指定列的同时使用linq。

2 个答案:

答案 0 :(得分:1)

将属性上的IsDbGenerated属性设置为true ...

答案 1 :(得分:1)

Frequently Asked Questions (LINQ to SQL)的答案:

在插入或更新时避免显式设置数据库生成的值

  

问。我有一个默认为DateCreated列的数据库表   SQL Getdate()。当我尝试使用LINQ to SQL插入新记录时,   该值设置为NULL。我希望它能被设置为   数据库默认。

     

A。 LINQ to SQL会自动处理此情况以进行身份​​识别   (自动递增)和rowguidcol(数据库生成的GUID)和   时间戳列。在其他情况下,您应该手动设置   IsDbGenerated=trueAutoSync=Always/OnInsert/OnUpdate属性。

此外,我建议通过将IsReadOnly标记更改为true来从属性中删除setter。