Entity framework 4 如何将现有实体集合添加到现有实体中,而无需使用代码优先框架首先从数据库中提取现有实体

Entity framework 4 如何将现有实体集合添加到现有实体中,而无需使用代码优先框架首先从数据库中提取现有实体,entity-framework-4,ef-code-first,code-first,Entity Framework 4,Ef Code First,Code First,我正在尝试将两个现有的和一个新的出价附加到现有的拍卖中,但是在没有首先从数据库中提取产品之前,我无法这样做 这段代码是有效的,但是我应该如何为现有的出价提供出价id,然后保存拍卖 using (var db = new DataContext()) //find existing auction var auction = db.Auctions.Find(1); var bid1 = db.Bids.Find(1); var bid2 = db.Bids.Fi

我正在尝试将两个现有的和一个新的出价附加到现有的拍卖中,但是在没有首先从数据库中提取产品之前,我无法这样做

这段代码是有效的,但是我应该如何为现有的出价提供出价id,然后保存拍卖

using (var db = new DataContext())
    //find existing auction
    var auction = db.Auctions.Find(1);

    var bid1 = db.Bids.Find(1);
    var bid2 = db.Bids.Find(2);
    var bid3 = new Bid()
    {
        //New Bid
    };

    //existing
    auction.Bids.Add(bid1);
    //existing
    auction.Bids.Add(bid2);
    //new
    auction.Bids.Add(bid3);
    db.SaveChanges();
}
编辑-我也尝试过,但遇到了一个引用完整性问题:具有以下innerexception:

{Store update、insert或delete语句影响了意外数量的行0。自从加载实体后,实体可能已被修改或删除。请刷新ObjectStateManager条目。}

        using (var db = new DataContextContext())
        {
            var auction = db.Auctions.Find(1);
            var bid1 = new Bid() { BidId = 1 };
            db.Bids.Attach(bid1);
            auction.Bids.Add(bid1);
            db.SaveChanges();
        }
可以使用将已知实体添加到db上下文中

using (var db = new DataContext()) {
    //find existing auction
    var auction = db.Auctions.Find(1);
    var bid1 = new Bid() { BidId = 1 };
    var bid2 = new Bid() { BidId = 2 };

    var bid3 = new Bid()
    {
        //New Bid
    };

    //existing
    db.Attach(bid1);
    auction.Bids.Add(bid1);
    //existing
    db.Attach(bid2);
    auction.Bids.Add(bid2);
    //new
    auction.Bids.Add(bid3);
    db.SaveChanges();
}

隐马尔可夫模型。。。但拍卖对象没有附加方法。存在db.Auctions.Attach,但我不确定如何使用它来完成我要做的事情。对不起,我的错误。我已经更新了我的答案。您需要在数据上下文上调用Attach。这对我不起作用,出现了引用完整性错误。我将把我的代码作为一个注释发布。这个问题与前一个关于附加一个已知实体的问题有关-我已经很好地解决了这个问题。