【发布时间】:2012-12-25 06:58:23
【问题描述】:
我正在使用 LINQ-to-SQL 类。我正在使用 LINQ 方法 object.InsertOnSubmit() 插入一个新行。
我需要为表主键列设置由 SQL Server 生成的相同值(使用Identity)。
现在我在向表中插入新行时需要相同的值。并且仅在插入时为同一表中的其他列设置相同的值。
因为表有 UPDATE TRIGGER,所以插入后我无法更新。
我尝试了以下
_db.EmpNews.InsertOnSubmit(_EmpNews);
...
_db.DisplaySeq = _EmpNews.ID;
...
_db.SubmitChanges();
其中ID 是自动生成的 (Identity) 列。
【问题讨论】:
-
我实际上为此想出了一个不错的“hack”。我只是添加一个
SecondPrimaryKeyColumn,默认值为NULL。在我插入或在事务中立即运行UPDATE table SET SecondPrimaryKeyColumn = PrimaryKeyColumn WHERE SecondPrimaryKeyColumn IS NULL;
标签: c# sql-server linq linq-to-sql