[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.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.