У меня есть таблица сообщений и таблица квартир.
Сообщения имеют MessageFrom, связанный с apartmentId и MessageTo, который также связан с идентификатором квартиры.
Я реализую свой код, как всегда, используя ядро Entity Framework. но вещи не кажутся правильными.
Вот мой код:
1 - Приложение DbContext
modelBuilder.Entity<Messages>(entity =>
{
entity.HasKey(e => e.MessageId);
entity.Property(e => e.DateOfMessage).HasColumnType("DateTime");
entity.Property(e => e.Message).HasColumnType("nvarchar(300)").HasMaxLength(300);
entity.Property(e => e.IsRed).HasColumnName("IsRed").HasColumnType("bit");
entity.Property(e => e.MessageTo).HasColumnType("int");
entity.HasOne(e => e.Apartment).WithMany(x => x.Messages).HasForeignKey(e => e.MessageFrom).HasConstraintName("FK_MessageFrom_Apartment");
entity.HasOne(e => e.Apartment).WithMany(x => x.Messages).HasForeignKey(e => e.MessageTo).HasConstraintName("FK_MessageTo_Apartment");
});
2 - класс модели:
public class Messages
{
public int MessageId { get; set; }
public int ?MessageFrom { get; set; }
[ForeignKey("MessageFrom")]
public Apartment Apartment { get; set; }
public int ?MessageTo { get; set; }
[ForeignKey("MessageTo")]
public Apartment apartment { get; set; }
[Required]
public DateTime DateOfMessage { get; set; }
[Required]
public string Message { get; set; }
public bool IsRed { get; set; }
}
3 - проблема:
Существует несколько переходов в типе сущности «Сообщения», которые указывают на один и тот же набор свойств - «MessageFrom» с использованием ForeignKeyAttribute
4- иногда дает:
Неверное имя столбца 'ApartmentId'. ' в то время как в модельных сообщениях у меня вообще нет квартирId