Jestem bardzo zdezorientowany, staram się na próżno, aby umieścić w kolejce wiele wkładek mam tysiące rozszerzeń, aby to zrobić i chcę tylko raz zrobić bazę danych.Nie mam przeciążenia dla EF zmian i bez akceptowanych zmian
Używam .NET Framework 4 Entity Framework 4 i również dodane odniesienie do system.data.objects ale mam jeszcze żadnego SaveChanges
przeciążenie tutaj jest mój kod:
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 ??
}
}
to naprawdę niszczy teraz moją głowę, więc każda pomoc będzie bardzo cenna.
dzięki
Hmmmmm, ładne i spróbuje to później, kiedy wracam do domu, dzięki – davethecoder
Cześć, to nie działa, jeśli tylko użyj powyższego, aby uzyskać jęk na temat mojegoDbContext, który musi być własnością. więc do myDbContext dodałem właściwość objectContext, a następnie użyłem tego: using (ObjectContext context = new myDContext(). ObjectContext()), ale nie wiem jak dodać do niego teraz context.AddObject ("Products", tempProduct); BŁĄD: podstawowy dostawca nie powiodło się podczas otwarcia. – davethecoder
Jaką wersję EF używasz? –