EF保存同一对象的多个实例

时间:2013-10-17 20:42:52

标签: entity-framework entity-framework-5

这是情况。我创建了一个对象(一个产品),然后通过我的数据库上下文保存它。然后我从数据库加载该产品并将它们放在另一个对象(下载)中并保存该对象。然后,EF为加载的原始产品创建另一个db条目。所以现在我在db中有两个相同的产品。这是否按预期工作?我以为EF跟踪从数据库加载的对象以防止这样的事情。

好的,如果您真的需要,可以使用一个产品的随机代码。

product product1 = new product{blah blah blah};
context.Products.add(product1);
context.savechanges();

var prod1 = context.Products.Where(x => x.Id == 1).FirstOrDefault();

user = new User { new Download {product = (product)prod1}};
context.Users.add(user);
context.save(user);

1 个答案:

答案 0 :(得分:0)

以下是一个例子:

var prod = context.Products.SingleOrDefault(p => p.Id == 1);
User user = context.Users.Create();
user.Product = prod;
context.Users.Add(user);
context.SaveChanges();

或者更容易......

User user = context.Users.Create();
user.ProductId = productId;
context.Users.Add(user);
context.SaveChanges();
相关问题