Я получаю Для типа объекта UserGroupLink требуется определить первичный ключ. Я получил эту ошибку, когда я запускаю Add-Migration в консоли диспетчера пакетов.Я пробовал разные ответы на stackoverflow, но ни один из них не работает для меня. Пользователь может быть частью любого числа Группы пользователей и Группа пользователей может иметь один или несколько Пользователь . UserGroupLink - это таблица, которая соединяет эту взаимосвязь, как показано ниже в конфигурации Fluent Api.Пожалуйста, помогите мне в этом.Я следовал этой статье https://github.com/aspnet/EntityFramework.Docs/blob/live/entity-framework/core/modeling/keys.md#fluent-api.
modelBuilder.Entity<UserGroup>().Property(u => u.UserGroupId).ValueGeneratedOnAdd();
modelBuilder.Entity<UserGroup>().Property(u => u.Name).IsRequired().HasMaxLength(50);
modelBuilder.Entity<UserGroup>().HasOne(u => u.Project).WithMany(p => p.UserGroups).HasForeignKey(f => f.ProjectId);
modelBuilder.Entity<User>().HasKey(u => u.Email);
modelBuilder.Entity<User>().Property(u => u.Name).IsRequired().HasMaxLength(50);
modelBuilder.Entity<User>().Property(u => u.Email).IsRequired().HasMaxLength(50);
modelBuilder.Entity<User>().Property(u => u.Role).IsRequired().HasMaxLength(50);
modelBuilder.Entity<UserGroupLink>().HasKey(l => new { l.UserGroupId, l.Email }); //Key is already defined here. Still error.
modelBuilder.Entity<UserGroupLink>().HasOne(l => l.UserGroup).WithMany(u => u.UserGroupLinks).HasForeignKey(l => l.UserGroupId);
modelBuilder.Entity<UserGroupLink>().HasOne(l => l.User).WithMany(u => u.UserGroupLinks).HasForeignKey(l => l.Email);
Класс
public class UserGroupLink
{
public string Email { get; set; }
public User User { get; set; }
public int UserGroupId { get; set; }
public UserGroup UserGroup { get; set; }
public UserGroupLink()
{
}
public UserGroupLink(User user, UserGroup userGroup)
{
User = user;
UserGroup = userGroup;
}
}
public class UserGroup
{
public int UserGroupId { get; set; }
public string Name { get; set; }
public int ProjectId { get; protected set; }
public Project Project { get; protected set; }
public IList<UserGroupLink> UserGroupLinks { get; set; }
}
public class User
{
public string Name { get; set; }
public string Email { get; set; }
public string Role { get; set; }
public IList<UserGroupLink> UserGroupLinks { get; set; }
}