Я хочу сначала использовать Entity Framework для создания внешнего ключа путем ссылки на первичный ключ той же таблицы. Пожалуйста, запустите SQL, чтобы понять это требование, хотя позвольте мне лучше всего это выразить.Entity Framework создает внешний ключ, ссылаясь на первичный ключ той же таблицы
У меня есть User
класса/модель, которая имеет свойство UserId
(первичный ключ), теперь я хочу иметь еще два свойства CreatedBy
и UpdatedBy
как в качестве внешнего ключа UserId
для одной и той же User
таблицы
Таблица структуры
UserID(PK,int,not null)
FirstName
LastName
UpdatedBy
CreatedBy(FK,int,not null) -- FK to UserId
UpdatedBy(FK,int, not null) -- FK to UserId
SQL для справки
CREATE TABLE [dbo].[User]
(
[UserId] [int] IDENTITY(1,1) NOT NULL,
[FirstName] [nvarchar](50) NOT NULL,
[LastName] [nvarchar](50) NOT NULL,
[Email] [nvarchar](50) NOT NULL,
[CreatedBy] [int] NULL,
[UpdatedBy] [int] NULL,
CONSTRAINT [PK_tbl_User] PRIMARY KEY CLUSTERED ([UserId] ASC)
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[User] WITH NOCHECK
ADD CONSTRAINT [FK_tbl_User_CreatedBy]
FOREIGN KEY([CreatedBy]) REFERENCES [dbo].[User] ([UserId])
GO
ALTER TABLE [dbo].[User] CHECK CONSTRAINT [FK_tbl_User_CreatedBy]
GO
ALTER TABLE [dbo].[User] WITH NOCHECK
ADD CONSTRAINT [FK_tbl_User_UpdatedBy]
FOREIGN KEY([UpdatedBy]) REFERENCES [dbo].[User] ([UserId])
GO
ALTER TABLE [dbo].[User] CHECK CONSTRAINT [FK_tbl_User_UpdatedBy]
GO
Итак, в чем проблема, с которой вы столкнулись? – hoekki
Я бы сделал CreateBy и UpdateBy нулевым, так как вы можете попасть в troulbe с настройкой CreatedBy для первого пользователя. ОбновленныйBy также может быть нулевым, если обновлений еще нет. Не может указывать на одного и того же пользователя с неопределяемым ограничением. – hoekki
Покажите нам свой существующий код. – Yorro