EntityFramwork和触发器生成的标识

时间:2016-08-24 08:33:11

标签: c# entity-framework sql-server-2014

在我的公司,我们将基于现有的数据库创建一个新的应用程序。在构建新应用程序的过程中,我们将生产环境中使用的两个应用程序(旧的和新的)连接到同一个数据库结构。

这次我们不能对数据库结构进行重大更改,而不需要很多工作来重构旧的应用程序(源代码只是一团糟)

现在我的问题: 很多表都没有自动生成的主键。在旧的应用程序中,创建类似于:

  SELECT MAX([id]) as id FROM [tablename];
  var new id = id + 1; 

为了在新应用程序上获得良好的性能,我们不希望在代码中生成新标识(我们正在使用EntityFramework 6)。相反,我们创建了一个触发器来生成id。

没问题,我无法将生成的id添加到我的entityFramework对象中。刷新上下文没有用,因为数据集上没有其他相同的标准可以用来重新选择它。

我的想法是使用storeGeneratedPatter.Identity将id带回entityFramwork。但是对于那种情况,我需要在触发器内设置@@ IDENTITY变量。

是否有可能做类似的事情:

    SET @@IDENTITY = @id

INSTEAD OF INSERT触发器内部?

感谢您的帮助

0 个答案:

没有答案