C# 4.0 我没有EF savechanges的重载,也没有可接受的更改
我很困惑,我徒劳地尝试排队多个插入我有数千个添加,所以我只想真正做一次数据库 我正在使用.net 4和entity framework 4,还添加了对system.data.objects的引用 但我仍然没有可用于保存更改的重载 这是我的密码:C# 4.0 我没有EF savechanges的重载,也没有可接受的更改,c#-4.0,entity-framework-4,C# 4.0,Entity Framework 4,我很困惑,我徒劳地尝试排队多个插入我有数千个添加,所以我只想真正做一次数据库 我正在使用.net 4和entity framework 4,还添加了对system.data.objects的引用 但我仍然没有可用于保存更改的重载 这是我的密码: using (TransactionScope scope = new TransactionScope()) { using (myDbContext context = new myDbCont
using (TransactionScope scope = new TransactionScope())
{
using (myDbContext context = new myDbContext)
{
foreach (var p in model)
{
var tempProduct = new Products();
// set a loopable list of available products
IEnumerable<MerchantProductFeedMerchantProd> prod = p.prod;
foreach (var i in prod)
{
var prodText = i.text.FirstOrDefault();
var prodUri = i.uri.FirstOrDefault();
var prodPrice = i.price.FirstOrDefault();
FillTempProduct(feedId, i, tempProduct, supplierId, feedInfo, prodPrice, prodText,
prodUri);
context.Products.Add(tempProduct);
context.SaveChanges(false); // no overload
}
scope.Complete();
context.AcceptAllChanges(); //acceptallchanges not referenced ??
}
}
使用(TransactionScope范围=新TransactionScope())
{
使用(myDbContext=newmydbcontext)
{
foreach(模型中的var p)
{
var tempProduct=新产品();
//设置可用产品的循环列表
IEnumerable prod=p.prod;
foreach(产品中的var i)
{
var prodText=i.text.FirstOrDefault();
var prodUri=i.uri.FirstOrDefault();
var prodPrice=i.price.FirstOrDefault();
FillTempProduct(feedId、i、tempProduct、供应商ID、feedInfo、prodPrice、prodText、,
普罗杜里);
context.Products.Add(tempProduct);
context.SaveChanges(false);//无重载
}
scope.Complete();
context.acceptillchanges();//未引用acceptillchanges??
}
}
这真是让我头疼,所以任何帮助都将不胜感激
感谢,因为您使用的是DbContext API,这些方法来自ObjectContext API。DbContext API简化=仅用于简单需求。如果您有更复杂的需求,则必须通过将
DbContext
转换为ObjectContext
实例来使用ObjectContext API:
var objectContext = ((IObjectContextAdapter)myDbContext).ObjectContext;
您好,这不起作用,如果我只是使用上面的方法,我会抱怨myDbContext需要成为一个属性。因此我在myDbContext中添加了一个objectContext属性,然后使用它:使用(objectContext context=new myDContext().objectContext()),但我不知道现在如何添加到它context.AddObject(“产品”,tempProduct);错误:基础提供程序在打开时失败。您使用的是什么版本的EF?最新的EntityFramework。4.1.10715.0我使用MvcScaffolding,它从nuget提取最新的EF