6
I Use This!
Inactive

News

Analyzed about 24 hours ago. based on code collected about 24 hours ago.
Posted over 13 years ago by AK107 <[email protected]>
subj и влияние на него AssociationAttribute Провайдер: Odp.net Дано: [TableName(Name = "t_user")] public sealed class User { [PrimaryKey, Identity, NonUpdatable] [SequenceName("sq_user")] ... [More] [MapField("user_id")] public long Id { get; set; } } при вставки новой записи db.InsertWidthIdentity(), генерится такой запрос: INSERT INTO t_user ( user_id, ) VALUES ( sq_user.nextval, ) RETURNING user_id INTO :IDENTITY_PARAMETER все ок — используется сиквенс для генерации id. НО, как только в похожем классе появляется AssociationAttribute у одного из полей (доказано экспериментальным путем), начинаются проблемы, а именно перестает использоваться генерация сиквенса [TableName(Name = "t_user_contract")] public sealed class Contract { [PrimaryKey, Identity, NonUpdatable] [SequenceName("sq_user_contract")] [MapField("user_contract_id")] public long Id { get; set; } [NotNull, NonUpdatable(OnInsert = false)] [MapField("user_id")] public long UserId { get; set; } [Association(ThisKey = "UserId", OtherKey = "Id", CanBeNull = false)] public User User { get; set; } [NotNull] [MapField("label")] public string Name { get; set; } } при вставки новой записи db.InsertWidthIdentity(), генерится такой запрос: INSERT INTO t_user_contract ( user_id, label ) VALUES ( :UserId, :Name ) RETURNING user_contract_id INTO :IDENTITY_PARAMETER что неправильно, т.к. сиквенс не используется. Как Association может влиять на это? [Less]
Posted over 13 years ago by Ummon <[email protected]>
Привет! Почему строковый NULL из БД отмапливается в string.Empty, а не в null? Как сделать так, чтобы в объекте был все-таки null? using (var db = new NorthwindDB()) { var customer = (from c in db.Customer where c.CustomerID == "ALFKI" select c).First(); // customer.Region == "" }
Posted over 13 years ago
1. foreach (var entity in dbManager.GetTable<Entity>().Where(x => ...)) //some operation; что происходит во время foreach — затягивание в память отфильтрованных данных и последующая итерация или же итерация по курсору и в памяти ... [More] только одна запись (аналог итерации по IDataReader)? 2. есть sql оператор insert into tableA values (a,b,c) (select d,e,f from tableB where ...) можно замутить аналог средставами BLToolkit не прибегая к plain sql? [Less]
Posted over 13 years ago by muhalet &lt;[email protected]&gt;
Прошу не пинать, если такой вопрос уже поднимался. Можно ли при помощи BlToolkit получить метаинформацию о источнике данных, например, имена таблиц, имена и связи колонок по имени таблицы и т.д., имея только connection string. Заранее благодарен.
Posted over 13 years ago by AK107 &lt;[email protected]&gt;
Привет. Есть проблема с передачей пустых массивов в качестве параметров хранимки. Нарыл в исходниках следующее: public override void AttachParameter(IDbCommand command, IDbDataParameter parameter) { ... if (oraParameter.Size == 0) { ... [More] // Skip this parameter. // Fix Oracle.Net bug #2: Empty arrays can not be sent to the server. // return; } ... собственно суть проблемы в следующем: при такой реализации оракловый клиент не находит подходящей функции с количеством параметров на один меньше (тот самый массив). Я реально замучался отлаживаться пока не копнул исходники. ИМХО очень неудачный способ. Есть ли какой-нибудь способ изменить такое поведение? [Less]
Posted over 13 years ago
Коллеги помогите советом, пожалуйста. Есть сервис написанный с использованием BLToolkit для работы с БД. Все многопоточно и красиво, но вот беда, имеем неплохой сервак под базу и сам сервис (куча ядер оперативки и прочего), загрузка не более 10% ... [More] по процу, памяти вообще море. ConnectionPool до базы вообще простаивает, но вот беда: Запросы на базе отлупляются по паре мс, запросы на стороне BLToolkit в среднем 20мс. Вроде бы как неплохо... Но вот беда, более 50 запросов к серверу не проходит Хоть в один поток гони хоть в два, хоть в сотню ( В чем может быть засада? BLToolkit — не может ограничивать как-нибудь? Куда капать хотя бы подскажите PS Взаимодействие с сервисом по средством aspx & IIS 01.02.12 13:59: Перенесено модератором из '.NET' — Odi$$ey [Less]
Posted over 13 years ago by Ummon &lt;[email protected]&gt;
Добрый день! Есть класс модели, наследующий EditableObject, который хранит файлы: public abstract class File : EditableObject<File> { public abstract int Id { get; set; } public abstract string FileName { get; set; } ... [More] public abstract byte[] Content { get; set; } } Если поменять только Content — то объект так и останется "чистым". Насколько я понимаю, вместо byte[] нужно использовать EditableList<T>, если я хочу отслеживать IsDirty и на этом свойстве. Не слишком ли дорогим удовольствием это будет?.. Если слишком, то как лучше сделать по-другому? [Less]
Posted over 13 years ago by Ummon &lt;[email protected]&gt;
Добрый день! Объявлен кастомный MemberMapper. Если использовать DataAccess.SqlQuery<T>.Insert то он применяется. Если же использовать Data.Linq.Query<T>.Insert (InsertOrUpdate etc) — игнорируется. Так задумано или это баг?
Posted over 13 years ago
Здравствуйте! Подскажите, есть ли в BLToolkit возможность централизованно включить логирование генерируемых SQL запросов? Понятно, что можно смотреть DbManager.Command, но логично было бы это делать автоматом для всех обращений к базе. В ... [More] идеале хотелось бы различать логирование нормально отработавших запросов (логирование на уровне Debug) и в случае исключения (на уровне Error). Сейчас подобное возможно? [Less]
Posted over 13 years ago by devmih &lt;[email protected]&gt;
Есть вопрос по клонированию EditableObject Поясните почему так происходит? public abstract class MyEntity : EditableObject<MyEntity> { public abstract string Name { get; set; } public abstract long? FKey { ... [More] get; set; } } private void button1_Click(object sender, EventArgs e) { MyEntity entity = MyEntity.CreateInstance(); entity.Name = "11111"; entity.FKey = 1; entity.AcceptChanges(); entity.FKey = null; // тут entity.IsDirty == true MyEntity clone = entity.Clone(); // здесь clone.IsDirty == false } Почему при обнулении поля клонирование так работает? Например если полю дать любое значение кроме null (например: entity.FKey = 2) тогда все нормально и clone.IsDirty == true [Less]