powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Entity Framework не работает update после SaveChanges
12 сообщений из 12, страница 1 из 1
Entity Framework не работает update после SaveChanges
    #37831762
Александр Третьяков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пробую разобраться как работает данная технология.
делаю все по примерах с книжки
ASP.NET MVC Framework с примерами на C# для профессионалов
http://www.williamspublishing.com/Books/978-5-8459-1609-9.html

у меня два вопроса.
1. Включил в проэкт поддержку Entity Framework v4.0.30319. настроил
в webconfig
Код: c#
1.
2.
3.
4.
5.
6.
    <connectionStrings>
        <add name="EFDbContext"
          providerName="System.Data.SqlClient"
             connectionString="server=VAlex;database=SportsStore;
            uid=shop222;pwd=1111"/>
    </connectionStrings>


описал классы

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Entity;
using SportsStore.Domain.Entities;

namespace SportsStore.Domain.Concrete
{
    public class EFDbContext: DbContext
    {
        public DbSet<Product> Products { get; set; }
    }
}


Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
using System.Linq;
using SportsStore.Domain.Abstract;
using SportsStore.Domain.Entities;

namespace SportsStore.Domain.Concrete
{
    public class EFProductRepository :IProductRepository 
    {
        private EFDbContext contex = new EFDbContext();
        public IQueryable<Product> Products
        {
            get { return contex.Products; }  
        }
        public void SaveProduct(Product product)
        {
            if (product.ProductID == 0)
            {
                contex.Products.Add(product);
            }
         
            contex.SaveChanges();
        }
        public void DeleteProduct(Product product)
        {
            contex.Products.Remove(product);
            contex.SaveChanges();
        }
    }
namespace SportsStore.Domain.Entities
{
    public class Product
    {
        [HiddenInput(DisplayValue = false)]
        public int ProductID { get; set; }

        [Required(ErrorMessage = "Please enter a product name")]
        public string Name { get; set; }

        [Required(ErrorMessage = "Please enter a description")]
        [DataType(DataType.MultilineText)]
        public string Description { get; set; }

        [Required]
        [Range(0.01, double.MaxValue, ErrorMessage = "Please enter a positive price")]
        public decimal Price { get; set; }

        [Required(ErrorMessage = "Please specify a category")]
        public string Category { get; set; }

        public byte[] ImageData { get; set; }
        [HiddenInput(DisplayValue = false)]
        public string ImageMimeType { get; set; }
    }
}
}



Самое интересное файл edmx не был создан. А вроде как понимаю зачем. Entity Framework сам нашел таблицу и связал с ней класс Product. Вопрос так и должно быть? И как этот файл получить?

2. Почему-то не отрабатывает модификация данных. Вставка и удаление работает как часы.
я уже вычислил что метод SaveProduct(Product product) при модификации срабатывает, product имеет уже модифицированные данные. Но почему-то на SQL Server не приходит команда update, я проверил через SQL Profiler.
Как я понимаю contex.SaveChanges() сохраняет все изменения по маркерах возле каждой записи таблицы. Маркер типа вставка, удалил, редактирование. Вопрос как проверить эти маркеры?
...
Рейтинг: 0 / 0
Entity Framework не работает update после SaveChanges
    #37831880
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ObjectStateManager Class

может я в свое время не разобрался толком... но вечноживой контекст не айс... как мне показалось. Есть более интересные имплементации репозитория :)
...
Рейтинг: 0 / 0
Entity Framework не работает update после SaveChanges
    #37832038
Александр Третьяков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buser
здесь есть примеры из книги
http://archive.williamspublishing.com/cgi-bin/materials.cgi?isbn=978-5-8459-1609-9
этот код для MVC

код оттуда.
...
Рейтинг: 0 / 0
Entity Framework не работает update после SaveChanges
    #37833157
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
        public void SaveProduct(Product product)
        {
	    context.Entry(product).State = product.ProductID == 0 ?
                                                       EntityState.Added :
                                                       EntityState.Modified;			
            contex.SaveChanges();
        }



А так?
...
Рейтинг: 0 / 0
Entity Framework не работает update после SaveChanges
    #37833330
Александр Третьяков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buser
спасибо в понедельник по пробую.
...
Рейтинг: 0 / 0
Entity Framework не работает update после SaveChanges
    #37834164
Александр Третьяков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buser
работает... только это мне кажется "костыль"
Разве не должен Entity Framework сам менять State?
...
Рейтинг: 0 / 0
Entity Framework не работает update после SaveChanges
    #37834172
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр Третьяков,

а чему равно значение свойства contex.Configuration.AutoDetectChangesEnabled ?
...
Рейтинг: 0 / 0
Entity Framework не работает update после SaveChanges
    #37834208
Александр Третьяков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
contex.Configuration.AutoDetectChangesEnabled равно true
...
Рейтинг: 0 / 0
Entity Framework не работает update после SaveChanges
    #37834757
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр Третьяковbuser
работает... только это мне кажется "костыль"
Разве не должен Entity Framework сам менять State?
Не забываем, что у "нас" вЁб приложение... ну и т.д...
...
Рейтинг: 0 / 0
Entity Framework не работает update после SaveChanges
    #37834770
Александр Третьяков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buser
Прошу почтения, не понял фразу "про веб приложение". Что это означает? Нужна какая-то настройка?
...
Рейтинг: 0 / 0
Entity Framework не работает update после SaveChanges
    #37834809
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
рискну предположить, что запихуемое в SaveProduct ни как не связано с контекстом. Сразу скажу - с вебом я не работаю... и вообще уже второй год не брал "шашек в руки"... Все сказанное - сказано из самых общих соображений...
...
Рейтинг: 0 / 0
Entity Framework не работает update после SaveChanges
    #37834814
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S. ... Ну либо нужно как-то сигнализировать об этих изменениях... читать влом... вроде был какой-то INotifyPropertyChanged
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Entity Framework не работает update после SaveChanges
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]