Обновление БД с помощью ADO.NET Entity Framework 4.0 - PullRequest
0 голосов
/ 24 октября 2011

Я использую ADO.NET EF 4.0.Сначала я получаю объект из БД и отсоединяю этот объект, отправленный веб-службой на стороне клиента.

веб-служба:

    private static Project GetObjects(int id)
    {
        var connSetting = ConfigurationManager.ConnectionStrings["ProjectEntities"];
        var conn = new EntityConnection(connSetting.ConnectionString);
        conn.Open();

        using(var contex= new ProjectEntities(conn))
        {
            var project = (from p in contex.Projects
                           where p.ProjectId == id
                           select p).FirstOrDefault();

            contex.Detach(project);

            return project;
        }
    }

на стороне клиента, является ли этот объект отредактированным и отправленным обратно в сетьслужба, на стороне веб-службы мне нужно обновить с этим объектом БД.

Теперь я использую это:

    private static void UpdateObject(Project obj)
    {
        var connSetting = ConfigurationManager.ConnectionStrings["ProjectEntities"];
        var conn = new EntityConnection(connSetting.ConnectionString);
        conn.Open();

        using (var contex = new ProjectEntities(conn))
        {
            var entity = (Project)contex.GetObjectByKey(obj.EntityKey);
            contex.ApplyCurrentValues(entity.EntityKey.EntitySetName, obj);
            contex.SaveChanges();
        }

    }

Этот метод для обновления в порядке?Потому что сначала я должен получить объект из объекта contextx, а затем я могу обновить.

Что вы предлагаете.Спасибо за вашу помощь и советы

1 Ответ

1 голос
/ 24 октября 2011

Мы делаем это следующим образом: context.TableName.Attach (object);context.ObjectStateManager.ChangeObjectState (object, System.Data.EntityState.Modified);context.SaveChanges ();

EntityState.Modified можно изменить на EntityState.Added для добавления нового элемента или Deleted для удаления существующего элемента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...