Я работаю на веб-сайте ASP net CORE MVC с Entity Framework, и у меня есть двойная связь между двумя таблицами:
DocType
# DocTypeName
#DocTypeValidationText
TraductionInterface
+ id
DocTypeName и DocTypeValidationText являются ForeignKey для таблицы TraductionInterface : один DocType имеет 2 TraductionInterface
вот мой класс:
DocType.cs
public class DocType
{
[Key]
public int DocTypeID { get; set; }
[Required]
public int DocTypeName { get; set; }
[ForeignKey("DocTypeName")]
public virtual TraductionInterface TraductionInterfaceName { get; set; }
[Required]
public int DocTypeValidationText { get; set; }
[ForeignKey("DocTypeValidationText")]
public virtual TraductionInterface TraductionInterfacevalidationText { get; set; }
}
TraductionInterface.cs
public class TraductionInterface
{
[Key]
public int TraductionInterfaceID;
[ForeignKey("DocTypeName")]
public virtual DocType DocTypeName { get; set; }
[ForeignKey("DocTypeValidationText")]
public virtual DocType DocTypeValidationText { get; set; }
}
ApplicationDbContext.cs
builder.Entity<DocType>().ToTable("DocType").HasOne(d => d.TraductionInterfaceName).WithOne(t => t.DocTypeName);
builder.Entity<DocType>().HasOne(d => d.TraductionInterfacevalidationText).WithOne(t => t.DocTypeValidationText);
, но я получаю эту ошибку при попытке обновить
Невозможно вызвать свойство для свойства«DocTypeValidationText» для типа объекта «TraductionInterface», поскольку он настроен как свойство навигации.Свойство можно использовать только для настройки скалярных свойств.
РЕДАКТИРОВАТЬ
@ user1672994 Решение, похоже, решило проблему, но применимо только первое отношение:
если
builder.Entity<DocType>().ToTable("DocType").HasOne(d => d.TraductionInterfaceName).WithOne(t => t.DocTypeName);
до
builder.Entity<DocType>().HasOne(d => d.TraductionInterfacevalidationText).WithOne(t => t.DocTypeValidationText);
применяется отношение TraductionInterfaceName
, иначе это отношение TraductionInterfacevalidationText
.Как я могу заставить эти 2 отношения работать вместе?