如何通过Linq To SQL插入/更新列,Linq To SQL使用默认值?特别是我关注时间戳字段。
我已经尝试将该列设置为只读和自动生成,因此它停止尝试放入DateTime.MinValue,但它似乎没有更新更新。
答案 0 :(得分:5)
您需要为时间戳列设置IsVersion = true。请参阅ColumnAttribute的参考资料。
在我的timestamp列的DBML设计器中,属性设置为
AutoGenerated=true
AutoSync=Always
Nullable, Primary Key, and ReadOnly = false
SQLDataType = rowversion not null
Timestamp = true
UpdateCheck = never
我假设你真的是指时间戳而不是日期时间。如果是后者,请忽略这一点。
答案 1 :(得分:2)
数据库默认值只会在创建行时插入值。除非您想添加触发器,否则它不会对更新执行任何操作。
或者,您可以向DataContext类添加部分方法。在项目中添加一个新文件:
public partial class YourDatabaseDataContext
{
partial void InsertYourTable(YourTable instance)
{
instance.LastUpdateTime = DateTime.Now;
this.ExecuteDynamicInsert(instance);
}
partial void UpdateYourTable(YourTable instance)
{
instance.LastUpdateTime = DateTime.Now;
this.ExecuteDynamicUpdate(instance);
}
答案 2 :(得分:1)
好像你忘了为该属性设置自动同步到始终。