powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Type
25 сообщений из 196, страница 5 из 8
Type
    #39334477
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Type
    #39334479
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Type
    #39334480
Фотография mr_max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAДокументацию читайте: https://docs.mongodb.com/manual/reference/operator/update-array/
Спасибо.
...
Рейтинг: 0 / 0
Type
    #39334482
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr_maxпоходу вот так

Код: c#
1.
Builders<Request>.Update.Set(x => x.Items[-1], object)


Вот так в Вашем случае:
Код: c#
1.
Builders<Request>.Update.Push(x => x.Items, product)
...
Рейтинг: 0 / 0
Type
    #39334485
Фотография mr_max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAmr_maxпоходу вот так

Код: c#
1.
Builders<Request>.Update.Set(x => x.Items[-1], object)


Вот так в Вашем случае:
Код: c#
1.
Builders<Request>.Update.Push(x => x.Items, product)


Спасибо
а идея с поликлассами, нормальная стоит ее делать
Request - абстрактный
PurchaseRequest - конкретный.
...
Рейтинг: 0 / 0
Type
    #39334512
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr_maxskyANAпропущено...

Вот так в Вашем случае:
Код: c#
1.
Builders<Request>.Update.Push(x => x.Items, product)



Спасибо
а идея с поликлассами, нормальная стоит ее делать
Request - абстрактный
PurchaseRequest - конкретный.
Реализация в статье только не очень удачная.
Не стоит в _t хранить имя конкретного класса, лучше некий числовой дискриминатор.
...
Рейтинг: 0 / 0
Type
    #39334536
Фотография mr_max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAmr_maxпропущено...

Спасибо
а идея с поликлассами, нормальная стоит ее делать
Request - абстрактный
PurchaseRequest - конкретный.
Реализация в статье только не очень удачная.
Не стоит в _t хранить имя конкретного класса, лучше некий числовой дискриминатор.

Лучше интерфейсы использовать или абстрактный класс для Request?
...
Рейтинг: 0 / 0
Type
    #39334545
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAНе стоит в _t хранить имя конкретного класса, лучше некий числовой дискриминатор.

Почему? Имя конкретного класса чуть менее экономно, чем число, но более гибко.
...
Рейтинг: 0 / 0
Type
    #39334547
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr_maxЛучше интерфейсы использовать или абстрактный класс для Request?

Класс.
...
Рейтинг: 0 / 0
Type
    #39334570
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttmr_maxЛучше интерфейсы использовать или абстрактный класс для Request?

Класс.+1
...
Рейтинг: 0 / 0
Type
    #39334573
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAНе стоит в _t хранить имя конкретного класса, лучше некий числовой дискриминатор.

Почему? Имя конкретного класса чуть менее экономно, чем число, но более гибко.
Чем это они гибко?

С развитием системы неизбежно наступает время рефакторинга. Классы перезжают в другие сборки, меняют названия.
...
Рейтинг: 0 / 0
Type
    #39334603
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAЧем это они гибко?

С развитием системы неизбежно наступает время рефакторинга. Классы перезжают в другие сборки, меняют названия.

Ну это просто же. Если не очевидно, то рисуем табличку +/-, и в этой табличке "время рефакторинга" внезапно оказывается одним из двух единственных плюсов, при чём довольно сомнительным, потому что во время рефакторинга, поле дискриминатора можно и обновить, в рамках рефакторинга расходы на это -- копейки.

Для имени класса в качестве дискриминатора оказывается гораздо больше увесистых плюсов:

+ отсутствие необходимости содержать и поддерживать какой-нибудь енум
+ можно развивать иерархию в любую глубину и это сразу будет работать, без ковыряний
+ в данных отсутствуют магические числа, которые ни о чём не говорят

В общем пройденный этап ещё на заре использования EF. Имя класса для дискриминатора -- верный выбор по всем фронтам, к гадалке не ходи.
...
Рейтинг: 0 / 0
Type
    #39334613
Фотография mr_max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAЧем это они гибко?

С развитием системы неизбежно наступает время рефакторинга. Классы перезжают в другие сборки, меняют названия.

Ну это просто же. Если не очевидно, то рисуем табличку +/-, и в этой табличке "время рефакторинга" внезапно оказывается одним из двух единственных плюсов, при чём довольно сомнительным, потому что во время рефакторинга, поле дискриминатора можно и обновить, в рамках рефакторинга расходы на это -- копейки.

Для имени класса в качестве дискриминатора оказывается гораздо больше увесистых плюсов:

+ отсутствие необходимости содержать и поддерживать какой-нибудь енум
+ можно развивать иерархию в любую глубину и это сразу будет работать, без ковыряний
+ в данных отсутствуют магические числа, которые ни о чём не говорят

В общем пройденный этап ещё на заре использования EF. Имя класса для дискриминатора -- верный выбор по всем фронтам, к гадалке не ходи.
Согласен, выходит попроще
Код: c#
1.
2.
3.
4.
5.
6.
 public async Task<object> GetList<T>() where T: Request
        {
            var filter = Builders<T>.Filter.Eq(e => e.Type, typeof(T).Name);;
            var items = await _dbContext.Database.GetCollection<T>("requests").Find(filter).Limit(30).ToListAsync();
            return items;
        }
...
Рейтинг: 0 / 0
Type
    #39334646
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAЧем это они гибко?

С развитием системы неизбежно наступает время рефакторинга. Классы перезжают в другие сборки, меняют названия.

Ну это просто же. Если не очевидно, то рисуем табличку +/-, и в этой табличке "время рефакторинга" внезапно оказывается одним из двух единственных плюсов, при чём довольно сомнительным, потому что во время рефакторинга, поле дискриминатора можно и обновить, в рамках рефакторинга расходы на это -- копейки.

Для имени класса в качестве дискриминатора оказывается гораздо больше увесистых плюсов:

+ отсутствие необходимости содержать и поддерживать какой-нибудь енум
+ можно развивать иерархию в любую глубину и это сразу будет работать, без ковыряний
+ в данных отсутствуют магические числа, которые ни о чём не говорят

В общем пройденный этап ещё на заре использования EF. Имя класса для дискриминатора -- верный выбор по всем фронтам, к гадалке не ходи.
Я тоже самое могу написать, только про NH: "В общем пройденный этап ещё на заре использования NH. Число в качестве для дискриминатора -- верный выбор по всем фронтам, к гадалке не ходи. "
...
Рейтинг: 0 / 0
Type
    #39334653
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAЯ тоже самое могу написать, только про NH: "В общем пройденный этап ещё на заре использования NH. Число в качестве для дискриминатора -- верный выбор по всем фронтам, к гадалке не ходи. "

Ну и супер! Чем больше точек зрения, тем яснее, что имя класса -- лучший выбор для дискриминатора
...
Рейтинг: 0 / 0
Type
    #39334663
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr_max
Код: c#
1.
2.
3.
4.
5.
6.
 public async Task<object> GetList<T>() where T: Request
        {
            var filter = Builders<T>.Filter.Eq(e => e.Type, typeof(T).Name);;
            var items = await _dbContext.Database.GetCollection<T>("requests").Find(filter).Limit(30).ToListAsync();
            return items;
        }


Хочется что бы вернулось что нибудь типизированное, а то JavaScript какой то получается.
...
Рейтинг: 0 / 0
Type
    #39334664
Фотография mr_max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВmr_max
Код: c#
1.
2.
3.
4.
5.
6.
 public async Task<object> GetList<T>() where T: Request
        {
            var filter = Builders<T>.Filter.Eq(e => e.Type, typeof(T).Name);;
            var items = await _dbContext.Database.GetCollection<T>("requests").Find(filter).Limit(30).ToListAsync();
            return items;
        }


Хочется что бы вернулось что нибудь типизированное, а то JavaScript какой то получается.
А это api, возвращается в Json.
...
Рейтинг: 0 / 0
Type
    #39334668
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВХочется что бы вернулось что нибудь типизированное, а то JavaScript какой то получается.

Таки ви что-то имеети против JavaScript, м?
...
Рейтинг: 0 / 0
Type
    #39334712
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttЕвгенийВХочется что бы вернулось что нибудь типизированное, а то JavaScript какой то получается.

Таки ви что-то имеети против JavaScript, м?
Не я один, Андерс Хейлсберг тоже !
...
Рейтинг: 0 / 0
Type
    #39334716
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr_maxА это api, возвращается в Json.
Который должен прекрасно десериализоваться в List<T> или кривой там .NET провайдер?
...
Рейтинг: 0 / 0
Type
    #39334756
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAЯ тоже самое могу написать, только про NH: "В общем пройденный этап ещё на заре использования NH. Число в качестве для дискриминатора -- верный выбор по всем фронтам, к гадалке не ходи. "

Ну и супер! Чем больше точек зрения, тем яснее, что имя класса -- лучший выбор для дискриминатора
Я вообще-то про число писал. Но да! Число -- лучший выбор для дискриминатора
...
Рейтинг: 0 / 0
Type
    #39334757
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВmr_max
Код: c#
1.
2.
3.
4.
5.
6.
 public async Task<object> GetList<T>() where T: Request
        {
            var filter = Builders<T>.Filter.Eq(e => e.Type, typeof(T).Name);;
            var items = await _dbContext.Database.GetCollection<T>("requests").Find(filter).Limit(30).ToListAsync();
            return items;
        }



Хочется что бы вернулось что нибудь типизированное, а то JavaScript какой то получается.
Обычно типизированное и возвращается, это ТС почему-то по своему запилил.
...
Рейтинг: 0 / 0
Type
    #39334809
Фотография mr_max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAhVosttпропущено...


Ну и супер! Чем больше точек зрения, тем яснее, что имя класса -- лучший выбор для дискриминатора
Я вообще-то про число писал. Но да! Число -- лучший выбор для дискриминатора
А в документации Имя класса используется
...
Рейтинг: 0 / 0
Type
    #39334812
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr_maxskyANAпропущено...

Я вообще-то про число писал. Но да! Число -- лучший выбор для дискриминатора
А в документации Имя класса используется

И это вполне естественно!
Зачем в документации приводить заведомо неудачные решения.
...
Рейтинг: 0 / 0
Type
    #39334820
Фотография mr_max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttmr_maxпропущено...

А в документации Имя класса используется

И это вполне естественно!
Зачем в документации приводить заведомо неудачные решения.
Имя даже удобно, когда по базе рыскаешься...
...
Рейтинг: 0 / 0
25 сообщений из 196, страница 5 из 8
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Type
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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