这是情况。我创建了一个对象(一个产品),然后通过我的数据库上下文保存它。然后我从数据库加载该产品并将它们放在另一个对象(下载)中并保存该对象。然后,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);
答案 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();