С тех пор Enum
реализации Типа IConvertible
интерфейс, лучшая реализация должна быть чем-то вроде этого:
public T GetEnumFromString<T>(string value) where T : struct, IConvertible
{
if (!typeof(T).IsEnum)
{
throw new ArgumentException("T must be an enumerated type");
}
//...
}
Это все еще разрешит передавать типов значения, реализовывая IConvertible
. Возможности редки все же.
Лучше понять, насколько я тупой на самом деле.
Если исходить из предположения, что вы не понимаете, что происходит, очень помогает.
Потому что отправка возможно неинициализированных прокси, особенно коллекций, на уровне представления и запуск загрузки гибернации оттуда может вызвать проблемы как с точки зрения производительности, так и с точки зрения понимания.
Понимание :
Использование OSIV «загрязняет» уровень представления проблемами, связанными с уровнем доступа к данным.
Уровень представления не подготовлен к обработке HibernateException
, которое может произойти при ленивой загрузке, но, предположительно, данные уровень доступа.
Производительность :
OSIV имеет тенденцию затягивать правильную загрузку сущностей под ковер - вы склонны не замечать, что ваши коллекции или сущности инициализируются лениво (возможно, N + 1). Больше удобства, меньше контроля.
Обновление: см. Антипаттерн OpenSessionInView для более подробного обсуждения этого предмета. Автор перечисляет три важных момента:
- каждая ленивая инициализация даст вам запрос, что означает, что каждой сущности потребуется N + 1 запросов, где N - количество ленивых ассоциаций. Если на вашем экране представлены табличные данные, чтение журнала Hibernate является большим намеком на то, что вы не делаете так, как должны
- , это полностью разрушает многоуровневую архитектуру, поскольку вы запачкаете свои ногти с помощью БД на уровне представления. Это концептуальный обман, поэтому я мог бы смириться с этим, но есть следствие
- , последнее, но не менее важное: если во время выборки сеанса возникает исключение, оно произойдет во время написания страницы:
Лучший способ улучшить свои мягкие навыки - это использовать свои мягкие навыки. Устройте обеденный семинар для своих коллег по работе. Ничего особенного, просто выберите технологию, которую, по вашему мнению, можно внедрить в компании, чтобы все работало более эффективно, составьте пятиминутную презентацию и выделите время для вопросов и обсуждения после. Вы даже можете создать тенденцию: раз в неделю другой человек может говорить о чем-то, что его интересует.
Не быть умным. Людям не нравятся умные задницы.
Если вы думаете, что правы, а все остальные уверены, что вы неправы, просто соглашайтесь и продолжайте быть правыми. Попытка аргументировать это приводит к отрицательному результату, когда люди не поддаются убеждению или проявляют упорство.
Несколько лет назад я посетил семинар по коммуникации. И я узнал одну вещь, которую я никогда не забуду: попытайтесь понять, почему люди действуют так, как они действуют, попытайтесь понять их мотивацию, делая то же самое. Это мне очень помогло, особенно в управлении менеджментом ...
Там, где я работаю, в настоящее время есть материалы об улучшении эмоционального интеллекта, что было весьма полезно для меня, поскольку помогло прояснить некоторые из того, как устроен мир.
С точки зрения того, что нет. изучение чего-либо, работа над светской беседой и немного расслабленность также улучшили мои навыки, поскольку не все хотят, чтобы каждая мелочь была проанализирована до смерти и не только.