Проблема с множеством данных на 2 таблицы - PullRequest
0 голосов
/ 20 марта 2019

У меня проблема с вставкой нескольких данных в две таблицы.Вот мой код

Контекстный класс

var userId = Convert.ToUInt32(user.Single(logon => logon.Type == CustomClaimTypes.UserId).Value);
            /*Create access table for insert*/

            var modules = p.Select(collection => new Accountcollection
            {
                AccountId = userId,
                Amount = collection.Amount,
                CashSource = collection.CashSource,
                CollectionDate = collection.CollectionDate,
                CreatedDatetime = DateTime.Now,
                UpdatedDatetime = DateTime.Now,
            }).ToList();

            _context.Accountcollection.AddRange(modules);

            var calendar_event = p.Select(collection => new Accountcalendarevents
            {
                AccountId = userId,
                Subject = collection.CashSource,
                Description = collection.CashSource,
                Start = collection.CollectionDate,
                End = collection.CollectionDate,
                ThemeColor = "blue",
                Isfullday = true,
                Status = "1",
                CreatedBy = userId,
                CreatedDatetime = DateTime.Now,
                UpdatedBy = userId,
                UpdatedDatetime = DateTime.Now
            }).ToList();

            _context.Accountcalendarevents.AddRange(calendar_event);
            _context.SaveChanges();
        }

Это модель моей коллекции

public partial class Accountcollection
    {
        [Key]
        public long Id { get; set; }
        public long AccountId { get; set; }
        public double? Amount { get; set; }
        public string CashSource { get; set; }
        public DateTime CollectionDate { get; set; }
        public DateTime? CreatedDatetime { get; set; }
        public DateTime? UpdatedDatetime { get; set; }

        //public Accountcalendarevents Accountcalendarevents { get; set; }

        public virtual Accountmaster Account { get; set; }

    }

И это моя модель событий Caldendar Manager

public class Accountcalendarevents
    {
        [Key]
        public long Id { get; set; }   

        public long AccountId { get; set; }
        public string Subject { get; set; }
        public string Description { get; set; }
        public DateTime Start { get; set; }
        public DateTime End { get; set; }
        public string ThemeColor { get; set; }
        public bool Isfullday { get; set; }
        public string Status { get; set; }
        public long CreatedBy { get; set; }
        public DateTime CreatedDatetime { get; set; }
        public long UpdatedBy { get; set; }
        public DateTime UpdatedDatetime { get; set; }

    }

Проблема в том, что когда я вставляю только 1 данные, все работает нормально, но если я пытаюсь вставить 2 или более, я получаю такое исключение Исключение я получил

Но, когда я прокомментировал

var calendar_event = p.Select(collection => new Accountcalendarevents
            {
                //AccountId = userId, <-- when I comment this line
                Subject = collection.CashSource,
                Description = collection.CashSource,
                Start = collection.CollectionDate,
                End = collection.CollectionDate,
                ThemeColor = "blue",
                Isfullday = true,
                Status = "1",
                CreatedBy = userId,
                CreatedDatetime = DateTime.Now,
                UpdatedBy = userId,
                UpdatedDatetime = DateTime.Now
            }).ToList();

, он работает правильно при множественной вставке данных.

Надеюсь, вы помогли мне с этим.Спасибо!

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