powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ASP MVC 4 проект и модель EntityFramework
8 сообщений из 8, страница 1 из 1
ASP MVC 4 проект и модель EntityFramework
    #38371692
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

Пишу/учусь потихоньку сайт. Использую database firs подход, добавил ado.net entity data model, получаю список товара нормально:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
//контроллер
        public ActionResult DirectoryLst()
        {
            return View(db.DirectorySprs.ToList());
        }


редактирую:
public ActionResult DirectoryEdt(int id)
        {
            // получение единственной задачи, которую пользователь собрался редактировать
            DirectorySpr Spr = db.DirectorySprs.Single(t => t.id ==id);           
            return View(Spr);
        }



а вот с сохранением не пойму - http://joxi.ru/lxkTUtg5CbC9F7_-MAY



посмотрел в проекте примере, там в моделях:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
//------------------------------------------------------------------------------
// <auto-generated>
//    This code was generated from a template.
//
//    Manual changes to this file may cause unexpected behavior in your application.
//    Manual changes to this file will be overwritten if the code is regenerated.
// </auto-generated>
//



а у меня было написано что авто генерация кода выключена, я взял и врубил ее, теперь за сотню ошибок типа: http://joxi.ru/TB4TUtg5CbDKGUw86Fs

задвоилось что ли. не понятно, и бекап слава богу есть.

Ребят как правильно поступить, чтобы сохранялось http://joxi.ru/lxkTUtg5CbC9F7_-MAY
...
Рейтинг: 0 / 0
ASP MVC 4 проект и модель EntityFramework
    #38371707
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
Spr.Name = "asdasd";
db.SaveChanges();


Вариант
Код: c#
1.
2.
db.Entry(Spr).State = EntityState.Modified;
db.SaveChanges();


нужен, если Spr получен не из контекста.
...
Рейтинг: 0 / 0
ASP MVC 4 проект и модель EntityFramework
    #38372008
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy
Код: c#
1.
2.
Spr.Name = "asdasd";
db.SaveChanges();


нужен, если Spr получен не из контекста.


спасибо, я так понимаю мне нужно новые данные "гнать" с представления, руками делать апдейт.... а как чтобы студия это генерировала как в моем примере?
...
Рейтинг: 0 / 0
ASP MVC 4 проект и модель EntityFramework
    #38372016
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сделал так:

db.Entry(Spr).State = EntityState.Modified;
db.SaveChanges();

не сохраняет, буду разбираться
...
Рейтинг: 0 / 0
ASP MVC 4 проект и модель EntityFramework
    #38372091
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
писало все время ошибку:

Validation failed for one or more entities. See 'EntityValidationErrors' property for more details.

погуглил, добавил try catch блок:


Код: 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.
 [HttpPost]
        public ActionResult DirectoryEdt(DirectorySpr Spr)
        {
            // Нажатие по кнопке "Сохранить" в представлении Edit приводит к Post запросу
            // который инициирует вызов данного метода.
            if (ModelState.IsValid)
            {
                db.DirectorySprs.Attach(Spr); // добавление объекта к таблице Tasks     
                db.Entry(Spr).State = EntityState.Modified;


                try
                {
                   
                    db.SaveChanges();
                }
                catch (DbEntityValidationException ex)
                {
                    StringBuilder sb = new StringBuilder();

                    foreach (var failure in ex.EntityValidationErrors)
                    {
                        sb.AppendFormat("{0} failed validation\n", failure.Entry.Entity.GetType());
                        foreach (var error in failure.ValidationErrors)
                        {
                            sb.AppendFormat("- {0} : {1}", error.PropertyName, error.ErrorMessage);
                            sb.AppendLine();
                        }
                    }

                    throw new DbEntityValidationException(
                        "Entity Validation Failed - errors follow:\n" +
                        sb.ToString(), ex
                    ); // Add the original exception as the innerException
                }
               
                return RedirectToAction("DirectoryLst");

            }
            return View(Spr);
        }



все равно выдает ошибку, но что интересно, если удаляю символы в каком либо поле - он сохраняет, если добавляю любые символы к существующим - ошибка... по таблице проверял, места для хранения данных в поле предостаточно....

что ему не нравится?
...
Рейтинг: 0 / 0
ASP MVC 4 проект и модель EntityFramework
    #38372119
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лично мне тут не нравится, что конкретное описание ошибки заменяется на невнятное "failed validation\n".

Я использую такую функцию:
Код: vbnet
1.
2.
3.
4.
    Public Function GetExMessage(ByVal Ex As Exception) As String
        If Ex Is Nothing Then Return ""
        GetExMessage = Ex.Message & vbCrLf & GetExMessage(Ex.InnerException)
    End Function
...
Рейтинг: 0 / 0
ASP MVC 4 проект и модель EntityFramework
    #38372127
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А хотя не заменяется, error.ErrorMessage должно выдавать описание конкретной проблемы.
...
Рейтинг: 0 / 0
ASP MVC 4 проект и модель EntityFramework
    #38372153
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyА хотя не заменяется, error.ErrorMessage должно выдавать описание конкретной проблемы.

запустил проект полностью F5 а не ctrl F5.... теперь вижу ошибку...
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ASP MVC 4 проект и модель EntityFramework
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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