Как добавить навигацию по нескольким столбцам в отношениях «один ко многим» в .NET с помощью Entity FrameworkC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как добавить навигацию по нескольким столбцам в отношениях «один ко многим» в .NET с помощью Entity Framework

Сообщение Anonymous »

У меня есть две таблицы с несколькими столбцами, которые указывают на одну сущность или таблицу.

Код: Выделить всё

[Table("opcr")]
public class Opcr
{
[Key]
public int Id { get; set; }
[Required]
public string? Title { get; set; }

[Required]
public string DepartmentHeadId { get; set; }
[ForeignKey(nameof(DepartmentHeadId))]
public ApplicationUser DepartmentHead { get; set; }

[Required]
public string EvaluatedById { get; set; }
[ForeignKey(nameof(EvaluatedById))]
public ApplicationUser EvaluatedBy { get; set; }

[Required]
public string ReviewedById { get; set; }
[ForeignKey(nameof(ReviewedById))]
public ApplicationUser ReviewedBy { get; set; }
}

Код: Выделить всё

using Microsoft.AspNetCore.Identity;
using System.ComponentModel.DataAnnotations;

namespace LGU_HR.Models;

public class ApplicationUser : IdentityUser
{
[Required]
[MaxLength(50)]
public string? FirstName { get; set; }
[Required]
[MaxLength(50)]
public string? LastName { get; set; }

// if I uncomment this, I'll get an error
// public ICollection DepartmentHead { get; }
// public ICollection EvaluatedBy { get; }
// public ICollection? ReviewedBy { get; }
}
Мне нужно это соединение, чтобы я мог выполнять поиск по таблице OPCR среди пользователей. Это связь «один ко многим», но когда я раскомментирую DepartmentHead для ApplicationUser, я получаю следующую ошибку:

Unable чтобы создать «DbContext» типа «». Исключение «Невозможно определить связь, представленную навигацией «ApplicationUser.DepartmentHead» типа «ICollection». Либо вручную настройте связь, либо игнорируйте это свойство, используя атрибут «[NotMapped]» или используя «EntityTypeBuilder.Ignore» в «OnModelCreating». был выброшен при попытке создать экземпляр. О различных шаблонах, поддерживаемых во время разработки

Я прочитал эту документацию, но у них нет этого примера.
Может кто-нибудь объяснить эту ситуацию? Не знаю, где я ошибаюсь.

Подробнее здесь: https://stackoverflow.com/questions/790 ... p-on-net-u
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»