У меня 3 класса:
public class ApplicationUser : IdentityUser
{
// all the default ApplicationUser properties etc...
public virtual ICollection<UserShips> UserShips { get; set; }
// other properties ...
}
public class Ship
{
public int ShipId {get; set;}
public virtual ICollection<UserShips> UserShips { get; set; }
// other ship properties
}
В этой таблице кораблей уже есть данные, вставленные в таблицу, которая является статической и не может быть изменена пользователем, только доступ к ней
public class UserShips
{
public int UserShipId {get; set;}
public int ShipId {get; set;}
public string Id {get; set;}
public virtual ApplicationUser ApplicationUser {get; set;}
public virtual Ship Ship {get; set;}
}
Итак, это то, что у меня есть до сих пор. Я безуспешно пробовал несколько разных сопоставлений сущностей с использованием Fluent API.
Я пытаюсь достичь следующего: у каждого пользователя может быть много пользовательских прав, и у каждого пользователя может быть один идентификатор корабля (на основе записи в базе данных) и идентификатор пользователя, может ли кто-нибудь помочь мне с моей дилеммой? Будем рады разместить любую дополнительную информацию, которая вам нужна!





Если вы хотите использовать DataAnnotations, вы можете попробовать это (вы никогда не упоминали в сообщении решение имел для использования Fluent Mappings).
[Table("user")]
public class User
{
[Key,Column("id")]
public string Id {get; set;
[ForeignKey(nameof(Id))]
public virtual ICollection<UserShips> UserShips { get; set; }
// other properties ...
}
[Table("ship")]
public class Ship
{
[Key, Column("shipid")]
public int ShipId {get; set;}
[ForeignKey(nameof(ShipId))]
public virtual ICollection<UserShips> UserShips { get; set; }
// other ship properties
}
[Table("userships")]
public class UserShips
{
[Key,Column("usershipid")]
public int UserShipId {get; set;}
[Column("shipid")]
public int ShipId {get; set;}
[Column("id")]
public string Id {get; set;}
[ForeignKey(nameof(Id))]
public virtual User User {get; set;}
[ForeignKey(nameof(ShipId))]
public virtual Ship Ship {get; set;}
}
спасибо за ответ !, я безуспешно попробовал ваш код, я столкнулся с ошибкой при добавлении аннотаций данных в класс ApplicationUser, ошибка от моего имени, поскольку приведенный выше код был неправильным, который я предоставил в первую очередь, любая дополнительная помощь будет буду очень признателен