Как мне создать новый журнал для этой команды при создании команды? - PullRequest
1 голос
/ 24 января 2020

Это модель моей команды

    public partial class TeamModel
    {
        public TeamModel()
        {
            this.Players = new HashSet<PlayerModel>();

        }

        public int TeamModelId { get; set; }

        public string TeamName { get; set; }
        public int SchoolId { get; set; }
        public int DivisionId { get; set; }

        public LogModel TeamLog { get; set; }


        [ForeignKey("Under")]
        public int UnderId { get; set; }

        public virtual LogModel Log { get; set; }
        public virtual SchoolModel School { get; set; }
        public virtual DivisionModel Division { get; set; }
        public virtual UnderModel Under { get; set; }
        public virtual ICollection<PlayerModel> Players { get; set; }

Это моя модель журнала

    public class LogModel
    {
        [Key]
        [ForeignKey("Team")]
        public int TeamId { get; set; }

        public int Played { get; set; }
        public int Win { get; set; }
        public int Draw { get; set; }
        public int Lost { get; set; }
        public int GoalsFor { get; set; }
        public int GoalsAgainst { get; set; }
        public int GoalDifference { get; set; }
        public int Points { get; set; }

        [ForeignKey("Season")]
        public int SeasonId { get; set; }

        public virtual SeasonModel Season { get; set; }
        public virtual TeamModel Team { get; set; }

    }

, и именно здесь я создаю новую команду, а также пытаюсь создать новый журнал для указанная c команда в процессе.


 [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Create([Bind(Include = "TeamModelId,TeamName,SchoolId,DivisionId,UnderId")] TeamModel teamModel)
        {
                teamModel.TeamLog = new LogModel();

                teamModel.TeamLog.Draw = 0;
                teamModel.TeamLog.GoalDifference = 0;
                teamModel.TeamLog.GoalsAgainst = 0;
                teamModel.TeamLog.GoalsFor = 0;
                teamModel.TeamLog.Lost = 0;
                teamModel.TeamLog.Played = 0;
                teamModel.TeamLog.Points = 0;
                teamModel.TeamLog.Win = 0;
                teamModel.TeamLog.SeasonId = db.Seasons.ToList().Last().SeasonId;

                db.Teams.Add(teamModel);
                db.SaveChanges();

                return RedirectToAction("Index");
            }

            ViewBag.DivisionId = new SelectList(db.Divisions, "DivisionId", "DivisionName", teamModel.DivisionId);
            ViewBag.SchoolId = new SelectList(db.Schools, "SchoolId", "SchoolName", teamModel.SchoolId);
            ViewBag.UnderId = new SelectList(db.Under, "UnderID", "UnderName", teamModel.UnderId);
            return View(teamModel);
        }

Ошибка, которую я получаю, когда пытаюсь добавить новый журнал в команду, подобную этой:

System.Data. Entity.Infrastructure.DbUpdateException: 'Произошла ошибка при сохранении сущностей, которые не предоставляют свойства внешнего ключа для своих отношений. Свойство EntityEntries вернет значение NULL, поскольку один объект не может быть определен как источник исключения. Обработка исключений при сохранении может быть упрощена путем предоставления свойств внешнего ключа в типах объектов. Подробности см. В InnerException.

, а внутреннее исключение -

UpdateException: невозможно определить действительный порядок для зависимых операций. Зависимости могут существовать из-за ограничений внешнего ключа, требований модели или сгенерированных в магазине значений.

Я искал решение для inte rnet, но мне не удалось найти ничего, что сработало. Я думаю, что моя проблема в том, как я пытался найти решение. Я искал ошибку, но казалось, что решения не решили проблему, с которой я столкнулся. Я провел несколько дней, пытаясь создать журнал, когда я создаю команду.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...