Соединительная таблица в ASP .NET код первый подход
Я создаю соединительную таблицу между Identity User и игровой таблицей. Эта таблица называется UserGame и имеет два внешних ключа (UserID, GameID) и одно дополнительное поле для хранения счета.
public class UserGame
{
[Key]
public string ApplicationUserID { get; set; }
public virtual ApplicationUser ApplicationUser { get; set; }
public int GameID { get; set; }
public virtual Game Game { get; set; }
public int Score { get; set; }
}
Моя путаница заключается в создании новой записи UserGame. Как мне поступить так и мой подход правильный?
Обновление (это сработало):
[HttpPost]
public ActionResult SubmitScore(int gameID, int score)
{
var playerRecord = new UserGame();
playerRecord.ApplicationUserID = User.Identity.GetUserId();
playerRecord.GameID = gameID;
playerRecord.Score = score;
return Json(new { success = true });
}
2 ответа
И то и другое ApplicationUserId
а также GameId
должен иметь [Key, Column(Order = 0)]
приписывать. Просто установите первый на Порядок 0, а другой на 1.
public class UserGame
{
[Key, Column(Order = 0)]
public string ApplicationUserID { get; set; }
public virtual ApplicationUser ApplicationUser { get; set; }
[Key, Colum(Order = 1)]
public int GameID { get; set; }
public virtual Game Game { get; set; }
public int Score { get; set; }
}
Затем у вас есть выбор, чтобы добавить новую запись, перейдите через свойство nav из Game
или же ApplicationUser
или непосредственно с вашим UserGame
учебный класс.
Пример настройки отношения "многие ко многим" в структуре сущностей
Пример вставки связанных объектов
Пара советов: я бы не объявлял первичный ключ в сущности соединения, поскольку соединения обычно определяются составными ключами. Помните, что dbcontext.SaveChanges() будет искать дочерние объекты и сохранять их.