Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 我没有EF savechanges的重载,也没有可接受的更改_C# 4.0_Entity Framework 4 - Fatal编程技术网

C# 4.0 我没有EF savechanges的重载,也没有可接受的更改

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

我很困惑,我徒劳地尝试排队多个插入我有数千个添加,所以我只想真正做一次数据库

我正在使用.net 4和entity framework 4,还添加了对system.data.objects的引用 但我仍然没有可用于保存更改的重载

这是我的密码:

        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