EF正在尝试在SaveChanges期间在新的父记录之前插入新的子记录

时间:2015-05-22 21:17:41

标签: c# entity-framework

我首先使用数据库,并且拥有一个包含子实体集合的父实体。当我同时添加两者时,我在数据库中得到一个FK约束,当我记录EF的命令时,我看到它发送sql命令首先在UOW中插入子记录,当然它爆炸了。

代码首先使用dbSet.Add添加故障单,然后将StockTicket添加到Ticket.StockTickets。然后调用SaveChanges()

我还尝试将Ticket和StockTicket添加到各自的dbSet,然后手动将StockTicket添加到Ticket.StockTickets,将Ticket添加到StockTicket.Ticket,但这不起作用

没有任何作用,我以前也没有遇到过这种情况;我和EF一起工作了很多。

public partial class Ticket 
{
    public Ticket()
    {
        this.StockTickets = new HashSet<StockTicket>();         
    }

    public long TicketID { get; set; }
    ...

    public virtual ICollection<StockTicket> StockTickets { get; set; }
}

public partial class StockTicket
{
    public long StockTicketID { get; set; }
    ...

    public virtual Ticket Ticket { get; set; }
}

// base repository methods
protected void Insert(TEntity entity)
{
    if (entity == null)
    {
        throw new ArgumentNullException("entity", "The entity argument is null.");
    }

    var entry = _context.Entry(entity);
    entry.Property("isActive").CurrentValue = true;
    _dbSet.Add(entity);
}

public void Save()
{
    _context.SaveChanges();
}

在我的服务中调用代码:

ticket.ticketID = GetNextSequence();
_repository.Insert(ticket);
ticket.StockTickets.Add(stockTicket);
_repository.Save();

0 个答案:

没有答案