powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Где и как проводить валидацию при сохранении сущности
9 сообщений из 34, страница 2 из 2
Где и как проводить валидацию при сохранении сущности
    #37861199
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmawАлексей КПусть помимо БД тоже будет логикаКуда её воткнуть - вот в чем вопросТрадиционно, делаеш слой бизнес-логики. В нём всё реализуеш.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
// Бизнес объект, может быть кодогенерированным, в зависимости от
// используемых средств
class MyEntity 
{
    public int Value1 { get; set; }
    public int Value2 { get; set; }
    public int Value3 { get; set; }
}

class MyDataService
{
    // "это" вызываеш из LinkButtonSave_Click
    public void Save(MyEntity obj)
    {
        // тут валидация
        // тут сохранение в БД
    }
}
...
Рейтинг: 0 / 0
Где и как проводить валидацию при сохранении сущности
    #37861203
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КСообщения в триггере могут быть для этого оформлены специальным образом и формироваться специально обученной для этого хранимой процедурой.

это жесткая связь приложения с СУБД - причем на уровне соглашений между разработчиками/ом_с_самими_собой

Алексей К
Код: c#
1.
2.
if (e.Message.StartsWith("INF"))
    throw new MyDataValidationException(e.Message.SubString(3), e);




хардкор - и не дешевый, и не сердитый

Алексей КМожно задействовать пользовательские коды ошибок. Тут всё зависит от используемой СУБД и желания.

тоже хардкор
...
Рейтинг: 0 / 0
Где и как проводить валидацию при сохранении сущности
    #37861207
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Кkmawпропущено...
Куда её воткнуть - вот в чем вопросТрадиционно, делаеш слой бизнес-логики. В нём всё реализуеш.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
// Бизнес объект, может быть кодогенерированным, в зависимости от
// используемых средств
class MyEntity 
{
    public int Value1 { get; set; }
    public int Value2 { get; set; }
    public int Value3 { get; set; }
}

class MyDataService
{
    // "это" вызываеш из LinkButtonSave_Click
    public void Save(MyEntity obj)
    {
        // тут валидация
        // тут сохранение в БД
    }
}



так это и получается тем, что я назвал выше контроллер
...
Рейтинг: 0 / 0
Где и как проводить валидацию при сохранении сущности
    #37861213
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
public class SectionController
    {
        public Section Section { get; set; }

        ISectionDao sectionDao;

        public void SetInstance(int id, UserProfile up)
        {
            IDaoFactory daoFactory = new NHibernateDaoFactory();
            sectionDao = daoFactory.GetSectionDao();

            if (id == 0)
                Section = new Section();
            else
            {
                Section = sectionDao.GetById(id, false);
                
            }
            Section.User = up;
        }

        public void SaveOrUpdate()
        {
            NHibernateSessionManager.Instance.BeginTransaction();
            try
            {
                
                if (sectionDao.GetUniqueByExample("Name", Section.Name, Section.ID)!= null)
                    throw new PostconditionException(String.Format("Раздел с наименованием [{0}] уже существует", Section.Name));
                
                sectionDao.SaveOrUpdate(Section);
                NHibernateSessionManager.Instance.CommitTransaction();
            }
            catch
            {

                NHibernateSessionManager.Instance.RollbackTransaction();
                NHibernateSessionManager.Instance.CloseSession();

                throw;
            }

        }
    }



как-то вот так пока сделал
...
Рейтинг: 0 / 0
Где и как проводить валидацию при сохранении сущности
    #37861216
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmawАлексей КПусть помимо БД тоже будет логика

Куда её воткнуть - вот в чем вопрос

Прежде, чем велосипеды придумывать, посмотрели бы, что другие делают. Нормальная система валидации за 6сек не рисуется
...
Рейтинг: 0 / 0
Где и как проводить валидацию при сохранении сущности
    #37861223
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVakmawпропущено...


Куда её воткнуть - вот в чем вопрос

Прежде, чем велосипеды придумывать, посмотрели бы, что другие делают. Нормальная система валидации за 6сек не рисуется

очень "конструктивно"
...
Рейтинг: 0 / 0
Где и как проводить валидацию при сохранении сущности
    #37861225
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmawАлексей КСообщения в триггере могут быть для этого оформлены специальным образом и формироваться специально обученной для этого хранимой процедурой.

это жесткая связь приложения с СУБД - причем на уровне соглашений между разработчиками/ом_с_самими_собой

Алексей К
Код: c#
1.
2.
if (e.Message.StartsWith("INF"))
    throw new MyDataValidationException(e.Message.SubString(3), e);




хардкор - и не дешевый, и не сердитый

Алексей КМожно задействовать пользовательские коды ошибок. Тут всё зависит от используемой СУБД и желания.

тоже хардкорЯ же тебе говорю, это просто громкие слова. Попробуй конкретно сформулировать проблемы, возникающие при этом подходе.
...
Рейтинг: 0 / 0
Где и как проводить валидацию при сохранении сущности
    #37861227
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmawэто жесткая связь приложения с СУБД - причем на уровне соглашений между разработчиками/ом_с_самими_собойКакой бы ни был разработчик, всегда можно распарсить исключение, генерируемое СУБД. Я лиш показал один из возможных вариантов.
...
Рейтинг: 0 / 0
Где и как проводить валидацию при сохранении сущности
    #37861230
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я думаю, мы уже по кругу ходим в наших вопрос-ответ
...
Рейтинг: 0 / 0
9 сообщений из 34, страница 2 из 2
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Где и как проводить валидацию при сохранении сущности
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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