[BUG] InsertBatch and Binary fields
От:
Holms
Дата: 27.11.10 07:01
Оценка:
такой LINQ
var q3 = ctx.ProjectDocument.Where(_ => _.ProjectId == projectId).ToList();
q3.ForEach(_ => _.ProjectId = newProjectId);
ctx.InsertBatch(q3);
в классе ProjectDocument есть такое поле
...
private System.Data.Linq.Binary m_Blob;
[BLToolkit.DataAccess.DbTypeAttribute(System.Data.DbType.Binary, -1)]
[BLToolkit.Mapping.MapFieldAttribute("Blob" )]
[BLToolkit.Mapping.NullableAttribute()]
public System.Data.Linq.Binary Blob
{
get
{
return this .m_Blob;
}
set
{
this .m_Blob = value ;
}
}
...
при вызове InsertBatch BLToolkit падает с ошибкой
SqlCommand.Prepare method requires all variable length parameters to have an explicitly set non-zero Size.
Call Stack
[External Code]
> BLToolkit.3.dll!BLToolkit.Data.DbManager.ExecuteOperation(BLToolkit.Data.OperationType operationType = PrepareCommand, System.Action operation = {Method = {System.Reflection.RuntimeMethodInfo}}) Line 4278 C#
BLToolkit.3.dll!BLToolkit.Data.DbManager.Prepare() Line 2227 C#
BLToolkit.3.dll!BLToolkit.Data.DbManager.ExecuteForEach<Meditano.PPC.DB2.ProjectDocument>(System.Collections.Generic.IEnumerable<Meditano.PPC.DB2.ProjectDocument> collection = Count = 1, BLToolkit.Mapping.MemberMapper[] members = {BLToolkit.Mapping.MemberMapper[10]}, int maxBatchSize = 2147483647, BLToolkit.Data.DbManager.ParameterProvider<Meditano.PPC.DB2.ProjectDocument> getParameters = {Method = {System.Reflection.RuntimeMethodInfo}}) Line 2590 + 0xb bytes C#
BLToolkit.3.dll!BLToolkit.DataAccess.SqlQuery<Meditano.PPC.DB2.ProjectDocument>.ExecuteForEach(BLToolkit.Data.DbManager db = {Meditano.PPC.DB2.PPCContextDbContext}, System.Collections.Generic.IEnumerable<Meditano.PPC.DB2.ProjectDocument> collection = Count = 1, BLToolkit.Mapping.MemberMapper[] members = {BLToolkit.Mapping.MemberMapper[10]}, int maxBatchSize = 2147483647, BLToolkit.Data.DbManager.ParameterProvider<Meditano.PPC.DB2.ProjectDocument> getParameters = {Method = {System.Reflection.RuntimeMethodInfo}}) Line 379 + 0x53 bytes C#
BLToolkit.3.dll!BLToolkit.DataAccess.SqlQuery<Meditano.PPC.DB2.ProjectDocument>.Insert(BLToolkit.Data.DbManager db = {Meditano.PPC.DB2.PPCContextDbContext}, int maxBatchSize = 2147483647, System.Collections.Generic.IEnumerable<Meditano.PPC.DB2.ProjectDocument> list = Count = 1) Line 173 + 0xd1 bytes C#
BLToolkit.3.dll!BLToolkit.Data.Linq.Extensions.InsertBatch<Meditano.PPC.DB2.ProjectDocument>(BLToolkit.Data.DbManager dataContext = {Meditano.PPC.DB2.PPCContextDbContext}, int maxBatchSize = 2147483647, System.Collections.Generic.IEnumerable<Meditano.PPC.DB2.ProjectDocument> list = Count = 1) Line 164 + 0x5a bytes C#
BLToolkit.3.dll!BLToolkit.Data.Linq.Extensions.InsertBatch<Meditano.PPC.DB2.ProjectDocument>(BLToolkit.Data.DbManager dataContext = {Meditano.PPC.DB2.PPCContextDbContext}, System.Collections.Generic.IEnumerable<Meditano.PPC.DB2.ProjectDocument> list = Count = 1) Line 169 + 0x45 bytes C#
Meditano.PPC.BL2.dll!Meditano.PPC.BL2.Projects.DuplicateProject(int projectId = 1, string newName = "Copy of: Hawser Rails") Line 1143 + 0x11 bytes C#
Meditano.PPC.UI.exe!Meditano.PPC.UI.MainForm.DuplicateProject() Line 964 + 0x11 bytes C#
Meditano.PPC.UI.exe!Meditano.PPC.UI.MainForm.barBtnDuplicateProject_ItemClick(object sender = {DevExpress.XtraBars.BarManager}, DevExpress.XtraBars.ItemClickEventArgs e = {DevExpress.XtraBars.ItemClickEventArgs}) Line 441 + 0x8 bytes C#
[External Code]
[External Code]
IT пожалуйста поправь это, очень нужно.
Спасибо
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
The life is relative and reversible.
Re: [BUG] InsertBatch and Binary fields
Здравствуйте, Holms, Вы писали:
H>IT пожалуйста поправь это, очень нужно.
Каким образом?
Если нам не помогут, то мы тоже никого не пощадим.
Re[2]: [BUG] InsertBatch and Binary fields
От:
Holms
Дата: 28.11.10 05:27
Оценка:
Здравствуйте, IT, Вы писали:
IT>Каким образом?
то есть? так что-бы работало
вытянуть блоб, и закачать заново в другую запись
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
The life is relative and reversible.
Re[3]: [BUG] InsertBatch and Binary fields
Здравствуйте, Holms, Вы писали:
H>вытянуть блоб, и закачать заново в другую запись
А зачем для этого выкачивать данные?!
Почему нельзя сделать так?
ctx.ProjectDocument
.Where(_ => _.ProjectId == projectId)
.Set(_ => _.ProjectId, newProjectId)
.Update();
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
Re[4]: [BUG] InsertBatch and Binary fields
От:
Holms
Дата: 28.11.10 19:36
Оценка:
Здравствуйте, rameel, Вы писали:
R>А зачем для этого выкачивать данные?! Почему нельзя сделать так?
R>R>ctx.ProjectDocument
R> .Where(_ => _.ProjectId == projectId)
R> .Set(_ => _.ProjectId, newProjectId)
R> .Update();
R>
нельзя, так как мне надо сделать дупликат сущности Проект, и всех дочерних записей.
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
The life is relative and reversible.
Re: [BUG] InsertBatch and Binary fields
От:
pr0ff
Дата: 30.11.10 23:05
Оценка:
Здравствуйте, Holms, Вы писали:
H>...
Тоже наткнулся на подобный баг. Правда у меня просто вставлялся null вместо Binary поля. Если надо, то могу минимальный код предоставить
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Re[2]: [BUG] InsertBatch and Binary fields
От:
Holms
Дата: 01.12.10 00:14
Оценка:
Здравствуйте, pr0ff, Вы писали:
P>Тоже наткнулся на подобный баг. Правда у меня просто вставлялся null вместо Binary поля. Если надо, то могу минимальный код предоставить
если можно, то на eugen DOT rata AT gmail DOT com
спасибо
P.S. очень желательно что-бы IT это пофиксил, я очень надеюсь на это, проект не могу сдать клиенту из-за этого бага
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
The life is relative and reversible.
Пока на собственное сообщение не было ответов, его можно удалить.
Удалить