У меня есть две отдельные модели, которые логически являются одно-ко-многим, но нет явного отношения внешнего ключа.
Таблица 1 имеет один ко многим с таблицей 2
Модели имеют следующий вид:
public class Table1
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id {get; set;}
}
public class Table2
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id {get; set;}
public string RelatedTableName {get; set;}
public string? RelatedTableId {get; set;}
}
В настоящее время таблица 2 будет иметь "Таблица1" и «10» как RelatedTableName и RelatedTableId соответственно. В будущем потенциально может существовать таблица Table3, которая также будет иметь один ко многим с таблицей 2.
Есть ли какой-либо способ, использующий свободный API или что-либо еще, который позволил бы EF понять это отношение?
Причина, по которой я спрашиваю, заключается в том, что запись в Таблице 1 создается одновременно с записями в Таблице 2. Обычно, чтобы связать эти записи, вы должны добавить их в навигационные свойства друг друга, так как идентификатор в Таблице 1 еще не сгенерирован. В этом примере кажется, что это не так просто сделать.
Существует еще один обходной путь - сохранение первого объекта перед вторым. Я бы предпочел не делать этого.