6
I Use This!
Inactive

News

Analyzed 1 day ago. based on code collected 1 day ago.
Posted over 12 years ago by AndrewVK <[email protected]>
В выходные мы успешно мигрировали RSDN@Home с BLToolkit на linq2db. Было поправлено несколько не очень серьезных, но неприятных ошибок. В итоге полет нормальный, так что всем рекомендую как минимум новые проекты начинать на linq2db, и, по ... [More] возможности мигрировать старые. Основные исправления заключаются в смене неймспейсов и переименовании части атрибутов для разметки маппинга. Изменений в запросах не понадобилось. На очереди rsdn.ru ... << RSDN@Home 1.2.0 alpha 5 rev. 71 on Windows 8 6.2.9200.0>> [Less]
Posted over 12 years ago by AK107 &lt;[email protected]&gt;
Как вообще правильно такое сделать средствами BLT, ну кроме явного db.SetCommand("select * from t where id = :id for update", ...).ExecuteNonQuery(); з.ы. а если бы еще средствами Linq то было бы вообще супер.
Posted over 12 years ago by Nikolay_P_I &lt;[email protected]&gt;
Начал осваивать BLToolkit и понял, что чуть глубже — и всё непросто. Может с непривычки. Потому — куча вопросов уважаемой аудитории опытных пользователей: 1) Дайте, пожалуйста, пример — как правильно и грамотно сделать функцию вид "Проапдейтить ... [More] существующие в БД строки. На входе — список объектов". К сожалению — в документации они совсем простенькие. Сам попробовал и столкнулся с такими трудностями: а) Как грамотно подать на вход список ? Вариант foreach(TableClass a in inList) { db.Table.Update(new TableClass{ Name=a.Name })} кажется кривым. Полагаю, как-то надо через LINQ писать б) Если у класса таблицы около 50 полей — Expression Tree в db.Table.Update становятся совсем трудночитаемыми и, главное, отнимают кучу времени на написание. При том что содержат простой ручной mapping объекта (иногда частичный) самого на себя. Как их писать правильно ? в) Если требуется дополнительная логика типа "если установлен Boolean doNotUpdateTime, то не апдейтить поля Time и Date" — то не понятно что делать — Expression Tree требует совсем простой логики, как туда все эти if и прочие сторонние функции вставить — мне не ясно. Что делать в этом случае ? 2) Как работать с ошибками SQL ? Например мне надо при возврате SQL 2008 причины отмены транзакции вида "deadlock" (номерная ошибка SQL Server) — сделать повтор команды. Как поймать ошибку и как достать из неё этот номер ? 3) Как в LINQ работает Update\Insert\Delete нескольких значений разом ? Вроде по коду — делаем db.Table.Update по 1 объекту ? Или оно в LINQ не компонуется, а так и работает 1 запрос как на 1 объект ? 4) Я правильно понял, что вариант через SqlQuery — сильно отстает в функциональности от ORM\LINQ версии ? Это так и задумано или оно просто заброшено ? P.S. Есть ли где в открытом доступе простой пример приложения вида SQL-BLToolkit-Winform типа "Записная книжка" ? Хочется посмотреть как правильно делать велосипеды [Less]
Posted over 12 years ago by Nikolay_P_I &lt;[email protected]&gt;
Как ни извращался с Identity, NonUpdatable и PrimaryKey атрибутами — всё равно генерит Merge с ID-полем в Insert-части.
Posted over 12 years ago by Nikolay_P_I &lt;[email protected]&gt;
Как в BLToolKit сделать получение поля, что в MSSQL идет как nchar(100) ? Надо его в System.String с автоматическим .Trim(), то есть — без конечных пробелов. И вообще оно еще живо ? И где правильно про него вопросы задавать ? 04.04.13 10:45: Перенесено модератором из '.NET' — TK
Posted over 12 years ago by MozgC &lt;[email protected]&gt;
Доброе время суток, Насколько я понимаю, сейчас нет возможности загрузить ассоциированные свойства, кроме как писать код вручную. Кроме того, нельзя загрузить ассоциированные коллекции. Ну и само собой хочется чтобы такая возможность была. Судя ... [More] по поиску по форуму эта просьба периодически возникает уже несколько лет. Я вижу это как-то так: var ordersWithOrderLines = db.Orders.LoadWith(o => o.OrderLines); Как я понимаю, тут возникает 2 момента которые надо продумать: 1) До какого уровня загружать OrderLines 2) Как быть, если пользователь захочет загрузить пару ассоциированных коллекций (в случае одной коллекции проблем быть не должно). По первому пункту, имхо самым ожидаемым поведением будет загрузка 1 уровня, т.е. ассоциации OrderLines уже не загружаем. По второму пункту, я бы сделал настройку, которая бы контролировала разрешение загрузки нескольких ассоциированных коллекций (чтобы по незнанию пользователя не получалось ненужных долгих запросов). По умолчанию запрещено — и исключение в runtime. Если пользователь готов пойти на долгое выполнение запроса — пусть включает настройку и дергает из БД что хочет. [Less]
Posted over 12 years ago by Ummon &lt;[email protected]&gt;
Привет! Есть ли такое?
Posted over 12 years ago by -Dm- &lt;[email protected]&gt;
[XmlRoot("Unit")] public abstract class CUnit : EditableObject<CUnit> Бесполезен ?
Posted over 12 years ago by Jack128 &lt;[email protected]&gt;
Такая задача: private IQueriable<Tuple<Item1, Item2>> SubQuery() // реюзаем в нескольких методах { return from item1 in db.Item1 from item2 in db.Item2 where ... join ... ... [More] order ... // много всего всякого select Tuple.Create(item1, item2); } public List<Item1> GetData1() { return (from t in SubQuery() where ... select t.Item1 // а вот так нельзя! ).ToList(); } пока приходится обходиться примерно таким class QueriableTuple<T1, T2> { public T1 Item1; public T2 Item2; } private IQueriable<QueriableTuple<Item1, Item2>> SubQuery() { return from item1 in db.Item1 from item2 in db.Item2 where ... join ... order ... // много всего всякого select new QueriableTuple<Item1, Item2>{ Item1 = item1, Item2 = item2); } но необходимость явно указывать дженерик параметры убивает. [Less]
Posted over 12 years ago by LLI &lt;[email protected]&gt;
Есть такая строка в обобщ. классе: static Func<T, T> _objectTTMapper = Map.GetObjectMapper<T, T>(); Внутри этого класса, есть метод для клонирования: T GetClone(T entity) { return _objectTTMapper(entity); } Проблема в том, что некоторые поля entity мне клонировать не нужно. Как бы это дело настроить? Спасибо!