6
I Use This!
Inactive

News

Analyzed about 21 hours ago. based on code collected about 21 hours ago.
Posted over 13 years ago by 23Poison <[email protected]>
Всем привет! Раньше использовал BLToolkit + PostgreSQL. Для создания объектной модели БД был Т4 скрипт. Есть что-то подобное для Oracle. Если средство есть, подскажите, пожалуйста. И как его юзать? Спасибо
Posted over 13 years ago by kkolyan <[email protected]>
t4, раньше была ссылка но потерял ее и какой наилучший способ генерирования моделей
Posted over 13 years ago
Смотрю фреймворк, и пол дня не могу разобраться как просто преобразовать значение при маппинге. т.е. например, часть строковых полей преобразовать к верхнему регистру. В моём представлении должен быть аттрибут, который бы навешивался на поле и ... [More] принимал бы тип конвертера, но в упор не нахожу. Есть MemberMapper, но в SetValue почему то не передаётся свойство, которое нужно изменить. [Less]
Posted over 13 years ago by devmih <[email protected]>
Есть вопрос: При создании клона объекта EditableObject (класса наследуемого от EditableObject), можно одновременно получать и клоны объектов EditableList (которые находятся в объекте клонируемого класса)?
Posted over 13 years ago
Можно ли в при изменении EditableObject организовать что-то вроде транзакций? т.е. откатывать изменения до какого-то промежуточного зафиксированного состояния на примере: public abstract class TestObject : ... [More] EditableObject<TestObject> { public abstract string FirstName { get; set; } public abstract string LastName { get; set; } } [Test] public void Test() { TestObject obj = TestObject.CreateInstance(); obj.FirstName = "Tester"; obj.LastName = "Testerson"; obj.AcceptChanges(); // зафиксировали obj.FirstName = "Developer"; // ! можно тут как-то зафиксировать промежуточное состояние? obj.FirstName = "Admin"; // ! а тут откатить до этого состояния, т.е. не до "Tester", а до "Developer" obj.RejectChanges(); // тут откатываем до "Tester" Assert.AreEqual("Tester", obj.FirstName); Assert.IsFalse(obj.IsDirty); } } [Less]
Posted over 13 years ago by _d_m_ &lt;[email protected]&gt;
Как можно задать разные имена таблиц (вернее представлений) для разных типов команд в SqlQuery<T> ?
Posted over 13 years ago
Господа, скажите, пожалуйста, почему не выводится "Стоп" в следующем коде? И как это лечить? Thread thread = new Thread(() => { Trace.WriteLine("Старт."); using(DbManager db = new DbManager()){} Trace.WriteLine("Стоп."); }); thread.Start(); Заранее благодарю.
Posted over 13 years ago by Ummon &lt;[email protected]&gt;
Добрый день! Имеется такой аксессор: public abstract class AddressAccessor : DataAccessor<Address>, IObjectAccessor { [SprocName("address_dlg.get_address")] public abstract IDomainObject SelectByKey([ParamName("address_id")]object ... [More] key); } get_address — это оракловая функция, объявленная вот так: FUNCTION get_address(address_id IN VARCHAR2) RETURN SYS_REFCURSOR Проблема в том, что в процедуру не передается значение параметра. Если же параметр в аксессоре сделать типом string — то тогда до функции в оракле долетает переданный в SelectByKey параметр. Пробовал атрибут ParamDbType — не помогает. Менять имя и тип параметра нельзя — это от интерфейса досталось. В качестве датапровайдера используется Devart. В какую сторону копать? И второй вопрос: где-то внутри БЛТ есть список сообщений/ошибок, которые не выкидываются исключениями, но сигнализируют, что что-то пошло не так? [Less]
Posted over 13 years ago by Holms &lt;[email protected]&gt;
При таком запросе public static void SaveUpdateUserSettings(int userId, string key, string data, byte[] binaryData) { using (var ctx = CBloomNewsDataContext.Context) { UserSetting us = ctx.UserSettings.FirstOrDefault(_ => ... [More] _.UserId == userId && _.Key == key); if (us == null) { ctx.Insert(new UserSetting { UserId = userId, Key = key, Data = data, BinaryData = binaryData, }); } else { us.Data = data; us.BinaryData = binaryData; // <-- здесь ctx.Update(us); } } } ... [TableName(Name="UserSettings")] public partial class UserSetting { [ PrimaryKey(1), Required ] public int UserId { get; set; } // int(10) [ PrimaryKey(2), MaxLength(50), Required] public string Key { get; set; } // nvarchar(50) [Nullable, MaxLength(1073741823) ] public string Data { get; set; } // ntext(1073741823) [Nullable ] public byte[] BinaryData { get; set; } // varbinary(-1) } если binaryData = null, то получаем ошибку Implicit conversion from data type nvarchar to varbinary(max) is not allowed. Use the CONVERT function to run this query. Callstack > BLToolkit.4.dll!BLToolkit.Data.DbManager.ExecuteOperation<int>(BLToolkit.Data.OperationType operationType, System.Func<int> operation) Line 4396 + 0xb bytes C# BLToolkit.4.dll!BLToolkit.Data.DbManager.ExecuteNonQueryInternal() Line 615 + 0x51 bytes C# BLToolkit.4.dll!BLToolkit.Data.DbManager.ExecuteNonQuery() Line 2793 + 0x8 bytes C# BLToolkit.4.dll!BLToolkit.Data.DbManager.BLToolkit.Data.Linq.IDataContext.ExecuteNonQuery(object query) Line 184 + 0x8 bytes C# BLToolkit.4.dll!BLToolkit.Data.Linq.Query<int>.NonQueryQuery(BLToolkit.Data.Linq.IDataContextInfo dataContextInfo, System.Linq.Expressions.Expression expr, object[] parameters) Line 213 + 0xc bytes C# BLToolkit.4.dll!BLToolkit.Data.Linq.Query<int>.SetNonQueryQuery.AnonymousMethod__e(BLToolkit.Data.Linq.QueryContext ctx, BLToolkit.Data.Linq.IDataContextInfo db, System.Linq.Expressions.Expression expr, object[] ps) Line 201 + 0x12 bytes C# BLToolkit.4.dll!BLToolkit.Data.Linq.Query<CBloomNewsDataModel.UserSetting>.Update(BLToolkit.Data.Linq.IDataContextInfo dataContextInfo, CBloomNewsDataModel.UserSetting obj) Line 820 + 0x53 bytes C# BLToolkit.4.dll!BLToolkit.Data.Linq.Extensions.Update<CBloomNewsDataModel.UserSetting>(BLToolkit.Data.Linq.IDataContext dataContext, CBloomNewsDataModel.UserSetting obj) Line 288 + 0x3c bytes C# CBloomNews.Database.dll!CBloomNews.Database.BussinesLogic.BL.Users.SaveUpdateUserSettings(int userId, string key, string data, byte[] binaryData) Line 440 + 0x11 bytes C# BLToolkit — последнея из GIT... << RSDN@Home 1.2.0 alpha 5 (M4) rev. 1510>> [Less]
Posted over 13 years ago
Добрый день! Есть вопрос по поводу свойства IsDirty Вот пример сущности: [TableName("SomeTable")] public abstract class SomeEntity : EditableObject { [MapField("somekey")] public abstract string somekey { ... [More] get; set; } [MapField("SomeField")] public abstract string SomeField{ get; set; } [Relation(typeof(SubEntity))] [Association(ThisKey = "somekey", OtherKey = "someotherkey", CanBeNull = true)] public EditableList<SubEntity> SomeList = new EditableList<SubEntity>(true); } Если изменится какое-нибудь свойство SomeEntity (кроме SomeList), тогда SomeEntity.IsDirty == true Если изменится какой-нибудь элемент в SomeList, но при этом остальные свойства SomeEntity не меняются, тогда SomeList.IsDirty == true, но SomeEntity.IsDirty == false. Кто может прокомментировать такое поведение? Почему признак изменения списков не отражается на основном объекте? [Less]