Entity framework 4 如何将现有实体集合添加到现有实体中,而无需使用代码优先框架首先从数据库中提取现有实体
我正在尝试将两个现有的和一个新的出价附加到现有的拍卖中,但是在没有首先从数据库中提取产品之前,我无法这样做 这段代码是有效的,但是我应该如何为现有的出价提供出价id,然后保存拍卖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
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。这对我不起作用,出现了引用完整性错误。我将把我的代码作为一个注释发布。这个问题与前一个关于附加一个已知实体的问题有关-我已经很好地解决了这个问题。