Вычисленный первичный ключ не обновляется в сущности EF Core после вставки

gsharp спросил: 28 сентября 2018 в 09:45 в: c#

У меня есть особый случай, когда Id таблицы определяется как вычисляемый столбец, например:

CREATE TABLE [BusinessArea](
    [Id]  AS (isnull((CONVERT([nvarchar],[CasaId],(0))+'-')+CONVERT([nvarchar],[ConfigurationId],(0)),'-')) PERSISTED NOT NULL,
    [CasaId] [int] NOT NULL,
    [ConfigurationId] [int] NOT NULL,
    [Code] [nvarchar](4) NOT NULL,
    [Name] [nvarchar](50) NOT NULL,
 CONSTRAINT [PK_BusinessArea] PRIMARY KEY CLUSTERED 
(
    [Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80) ON [PRIMARY]
) ON [PRIMARY]
GO

Обычно, когда у меня есть вычисляемый столбец, я настраиваю его так:

builder.Entity<MyEntity>()
 .Property(p => p.MyComputed).HasComputedColumnSql(null);

С помощью .HasComputedColumnSql() значение MyComputed отражает вставку / обновление объекта.

Однако этот прием не работает если вычисляемый столбец является PK.

Есть идеи, как заставить эту работу работать также с PK?

0 ответов