Я использую EF
в моем ASP.Net Core
приложении и пытаюсь связать таблицу UserNotification
с моей User
таблицей.Это структура таблиц:
public class User : IdentityUser
{
public string FirstName { get; set; }
public string LastName { get; set; }
public virtual UserNotifications { get; set; }
}
public class UserNotifications
{
public int Id { get; set; }
[Key, ForeignKey("User")]
public string UserId { get; set; }
public User User { get; set; }
[Key, ForeignKey("Sender")]
public string SenderId { get; set; }
public virtual User Sender { get; set; }
public string Title { get; set; }
public string Message { get; set; }
}
Я создал ForeignKey
из UserNotifications
, в котором я собираюсь хранить все уведомления, полученные User
.
Внутри таблицы UserNotifications
Я создал два FK
для User
и Sender
.По сути, я хочу сохранить Id
из User
, который получил уведомление, и Id
из User
, который отправил уведомление (Sender
).
Внутри OnModelCreating
Я также определил следующую логику:
builder.Entity<UserNotifications>(entity =>
{
entity.HasKey(n => n.Id);
entity.HasOne(u => u.User)
.WithOne(u => u.UserNotifications)
.HasForeignKey<User>(u => u.Id);
entity.HasOne(u => u.Sender)
.WithOne(u => u.UserNotifications)
.HasForeignKey<User>(u => u.Id);
});
Когда я набираю следующее здание в console
:
add-migration InitialMigration -context MyAppContext
, я получаю:
Невозможно создать связь между «User.UserNotifications» и «UserNotifications.Sender», поскольку уже существует связь между «UserNotifications.User» и «User.UserNotifications».Свойства навигации могут участвовать только в одной взаимосвязи.
Я новичок в EntityFramework
, поэтому я не знаю, как это исправить, кто-то может объяснить, что я сделал не так?
Заранее спасибо за любую помощь.