EF Core: составной внешний ключ Child не обновлен с помощью идентификатора, сгенерированного триггерами, в одиночных SavC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 EF Core: составной внешний ключ Child не обновлен с помощью идентификатора, сгенерированного триггерами, в одиночных Sav

Сообщение Anonymous »

Как использовать EF Core для управления составным иностранным ключом, ссылающейся на родительскую запись, идентификатор которого генерируется с помощью триггера базы данных после вставки? Fk не верен
It Parmits = 0 , тогда как это должно быть parent.id , который является -HQid
EF Core не любит parent.id , объявляется как значение. Один. />> Выпуск: < /p>

Код: Выделить всё

[Index(nameof(ID), nameof(FwDbID), IsUnique = true)]
public class Parent
{
[Key]
public int HqID { get; set; }
public int ID { get; set; }
public int FwDbID { get; set; }

public List Children { get; set; } = [];
}

public class Child
{
[Key]
public int HqID { get; set; }
public int ID { get; set; }
public int FwDbID { get; set; }

public int ParentID { get; set; }
public Parent Parent { get; set; }
}
< /code>
В застройке модели у меня есть следующие определения < /p>
modelBuilder.Entity
()
.Property(p => p.HqID)
.ValueGeneratedOnAdd();

modelBuilder.Entity()
.Property(p => p.ID)
.ValueGeneratedOnAdd();

modelBuilder.Entity()
.HasOne(c => c.Parent) // Child has one Parent
.WithMany(p => p.Children) // Parent has many Children
.HasForeignKey(c => new { c.ParentID, c.FwDbID }) // Composite foreign key in Child
.HasPrincipalKey(p => new { p.ID, p.FwDbID }); // Composite primary key in Parent
< /code>
Когда сущность сохраняется, существует триггер, который обновляет родительский идентификатор -Hqid. < /p>
Это этот триггер: < /p>
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER TRIGGER [dbo].[SyncTriggerInsertParent]
ON [dbo].[Parent]
AFTER INSERT
AS
BEGIN
IF NOT EXISTS (SELECT 1 FROM INSERTED)
RETURN

IF EXISTS (SELECT 1 FROM DELETED)
RETURN  --is this is an update trigger if so exit

SET NOCOUNT ON;

UPDATE IT
SET ID = - IT.HqID
FROM Parent IT
INNER JOIN INSERTED I ON IT.HqID = I.HqID
WHERE I.ID IS NULL OR I.ID = 0
END
заранее спасибо за любую помощь


Подробнее здесь: https://stackoverflow.com/questions/796 ... er-generat
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Составной первичный ключ и внешний ключ одновременно в JPA Hibernate
    Anonymous » » в форуме JAVA
    0 Ответы
    112 Просмотры
    Последнее сообщение Anonymous
  • Составной первичный и внешний ключ в JPA
    Anonymous » » в форуме JAVA
    0 Ответы
    41 Просмотры
    Последнее сообщение Anonymous
  • Чтение .sav с помощью Python
    Anonymous » » в форуме Python
    0 Ответы
    75 Просмотры
    Последнее сообщение Anonymous
  • Составной ключ EF Core с отношением
    Anonymous » » в форуме C#
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Ошибка кодирования Python при чтении файла .sav SPSS
    Anonymous » » в форуме Python
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»