Я пытаюсь определить родителя с базовой дочерней сущностью 'lookup', но без использования идентификаторов за пределами самой базы данных.Это позволит значительно упростить обработку в других слоях.Я использую EF core 2.2.
В настоящее время у меня есть следующее ...
public class Parent
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int id;
public int childId;
[ForeignKey("ChildId")]
public Child Child { get; private set; }
}
public class Child
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int id {get; protected set; }
public string code { get; private set; }
public string description { get; private set; }
}
в контексте, который у меня есть;
modelBuilder.Entity<Child>()
.HasIndex(ch => ch.Code).IsUnique();
Это означает, что при загрузкеродительская сущность, которой я вернул дочерний идентификатор, и если я хочу изменить дочерний элемент на родителе, мне нужно обновить идентификатор.
Что я хотел бы сделать, это иметь Child.code в родительской сущности ине Id, но храните внешний ключ Child Id в базе данных.
т.е.
public Parent
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int id { get; protected set; }
public string childCode { get; private set; }
}
public Child
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int id { get; protected set; }
public string code { get; private set; }
public string description { get; private set; }
}
Возможно ли это с помощью сопоставлений ядра ef?