У меня нет перегрузки для сохранений EF, и нет доступных приемок - PullRequest
5 голосов
/ 07 декабря 2011

Я очень смущен, я тщетно пытаюсь поставить в очередь несколько вставок, у меня есть тысячи добавлений, поэтому я хочу по-настоящему сделать базу данных только один раз.

Я использую .net 4 и сущностьframework 4, а также добавил ссылку на system.data.objects, но у меня все еще нет перегрузки, доступной для SaveChanges

, вот мой код:

        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 ??

            }
        }

это действительно бьется мне в голову сейчас, таклюбая помощь будет высоко ценится.

спасибо

1 Ответ

7 голосов
/ 07 декабря 2011

Поскольку вы используете DbContext API, и эти методы взяты из ObjectContext API. DbContext API упрощен = это только для простых требований. Если у вас есть более сложные требования, вы должны использовать ObjectContext API, преобразовав ваш DbContext в ObjectContext экземпляр:

var objectContext = ((IObjectContextAdapter)myDbContext).ObjectContext;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...