为什么一次将数据插入两个表不起作用?

时间:2017-06-15 15:00:31

标签: c# entity-framework unit-of-work

这是代码中有问题的一部分:

        FehirdeUser User = UserManager.FindByIdAsync(Model.UserId.ToString()).Result;
        OnlinePartner NOREXECO = new OnlinePartner();

        if ((ModelState.IsValid && Model != null) && (User != null))
        {
            using (var unitOfWork = UnitOfWorkManager.NewUnitOfWork())
            {
                User.IsApproved = Model.IsApproved;
                NOREXECO.Id = 1;
                NOREXECO.UserId = new Guid(UserManager.FindByName("Frank").Id);            
                NOREXECO.RoleName = "NOREXECO";
                NOREXECO.CorporateModelVersion = 3;
                NOREXECO.WelcomeMessageHeaderTop = Model.WelcomeMessageHeader;

                try
                {
                    unitOfWork.Commit();
                }
                catch (Exception e)
                {
                    unitOfWork.Rollback();
                    ModelState.AddModelError("", e.Message);

                    Exception InnerException = e.InnerException;
                    int InnerCount = 0;
                    while (InnerException != null)
                    {
                        ModelState.AddModelError("", "Inner exception " + ++InnerCount + ": " + InnerException.Message);
                        InnerException = InnerException.InnerException;
                    }
                }
            }
        }

所以,

User.IsApproved = Model.IsApproved;

行工作得很好,准备将数据存储到提交行的AspNetUsers表。

但是,使用NOREXECO对象的下一行填充了对象,但是在

unitOfWork.Commit();

它没有存储到OnlinePartners表中。

这是OnlinePartner类:

public class OnlinePartner
{
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }
    /// <summary>
    /// Foreign key from AspNetUsers
    /// </summary>
    [Required]
    public Guid UserId { get; set; }
    [Required]
    [StringLength(256)]
    public string RoleName { get; set; }
    public int CorporateModelVersion { get; set; }
    [StringLength(256)]
    public string WelcomeMessageHeaderTop { get; set; }
    public string WelcomeMessageTextTop { get; set; }

    #region Other columns - not used right now
    [StringLength(128)]
    public string Address { get; set; }
    [StringLength(32)]
    public string PostalCode { get; set; }
    [StringLength(256)]
    public string City { get; set; }
    [StringLength(256)]
    public string Country { get; set; }
    [StringLength(128)]
    public string PhoneNumber { get; set; }
    public string ContactPersonName { get; set; }
    [StringLength(256)]
    public string ContactPersonEmail { get; set; }
    [StringLength(128)]
    public string ContactPersonPhoneNumber { get; set; }
    public string Comment { get; set; }
    public string Text3 { get; set; }
    public string Text4 { get; set; }
    public string Text5 { get; set; }
    public string Text6 { get; set; }
    public string Text7 { get; set; }
    public string Text8 { get; set; }
    public string Text9 { get; set; }
    public string Text10 { get; set; }
    #endregion
}

0 个答案:

没有答案