我有一个如下所示的序列:
CREATE SEQUENCE dbo.NextWidgetId
AS [bigint]
START WITH 100
INCREMENT BY 2
NO CACHE
GO
一张看起来像这样的表:
CREATE TABLE [dbo].[Widget_Sequenced]
(
[WidgetId] [int] NOT NULL DEFAULT(NEXT VALUE FOR dbo.NextWidgetId),
[WidgetCost] [money] NOT NULL,
[WidgetName] [varchar](50) NOT NULL,
[WidgetCode] [int] NOT NULL,
[LastChangedBy] [int] NOT NULL,
[RowVersionId] [timestamp] NOT NULL,
CONSTRAINT [PK_Widget_Sequenced]
PRIMARY KEY CLUSTERED ([WidgetId] ASC) ON [PRIMARY]
) ON [PRIMARY]
有没有办法使用Entity Framework向此表结构添加新记录?
我尝试将StoreGeneratedPattern
的{{1}}设置为WidgetId
,并尝试使用computed
。两者都给了我错误。
我用EF 5尝试了这个。但是如果能解决这个问题,我可以转到EF 6。
答案 0 :(得分:1)
可以从版本6.2开始,使用此代码:
System.Data.Entity.SqlServer.SqlProviderServices.UseScopeIdentity = false;
答案 1 :(得分:0)
你可以用IDENTITY(100,2)替换你的序列,一切都可以开箱即用。