簡體   English   中英

實體框架-DbContext SaveChanges()

[英]Entity Framework - DbContext SaveChanges()

有人可以告訴我這是可能的,是否可以避免在此代碼中使用兩次_context.SaveChanges()

        Message m = new Message
        {
            Title = message.Title,
            Body = message.Body,
            Date = DateTime.Now
        };

        _context.Messages.Add(m);
        _context.SaveChanges();

        UserMessage messageToUser = new UserMessage
        {
            MessageID = m.ID,
            ProductID = message.ProductID,
            SenderID = message.SenderID,
            RecieverID = reciever.Id
        };

        _context.UserMessages.Add(messageToUser);
        _context.SaveChanges();

這是我的實體的樣子

public class UserMessage
{
    public int ID { get; set; }
    public string SenderID { get; set; }
    public string RecieverID { get; set; }
    public int? ProductID { get; set; }
    public int MessageID { get; set; }

    public User Sender { get; set; }
    public User Reciever { get; set; }
    public Product Product { get; set; }
    public Message Message { get; set; }
}

public class Message
    {
        public int ID { get; set; }
        public string Title { get; set; }
        public string Body { get; set; }
        public DateTime Date { get; set; }
    }

在您的UserMessage類上,您可以設置引用而不是外鍵,因為尚不知道外鍵。

在您的代碼中,這意味着:

    Message m = new Message
    {
        Title = message.Title,
        Body = message.Body,
        Date = DateTime.Now
    };

    _context.Messages.Add(m);

    UserMessage messageToUser = new UserMessage
    {
        ProductID = message.ProductID,
        SenderID = message.SenderID,
        RecieverID = reciever.Id,
        Message = m
    };

    _context.UserMessages.Add(messageToUser);
    _context.SaveChanges();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM