﻿<?xml version="1.0" encoding="utf-8"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Intersoft Community - WebDesktop - Error with batch update using client side binding and WebService</title><link>http://www.intersoftsolutions.com/Community/WebDesktop/Error-with-batch-update-using-client-side-binding-and-WebService/</link><description /><generator>http://www.intersoftsolutions.com</generator><language>en</language><copyright>Copyright 2002 - 2015 Intersoft Solutions Corp. All rights reserved.</copyright><ttl>60</ttl><item><title>Error with batch update using client side binding and WebService</title><link>http://www.intersoftsolutions.com/Community/WebDesktop/Error-with-batch-update-using-client-side-binding-and-WebService/</link><pubDate>Wed, 20 Oct 2010 18:19:44 GMT</pubDate><dc:creator>mmikaeel2</dc:creator><description>&lt;p&gt;You can do something like this, which works better too:&lt;/p&gt;&lt;pre&gt;[WebMethod]    public object GetMembershipNotes(DataSourceSelectArguments selectArguments)
    {
        String[] strParameters = selectArguments.FilterExpression.Split(',');
        int nMembershipID = 0, nEntityTypeID = 0, nNoteType = 0;
        Int32.TryParse(strParameters[0], out nEntityTypeID);
        Int32.TryParse(strParameters[1], out nNoteType);
        Int32.TryParse(strParameters[2], out nMembershipID);
        
        ArrayList list = new ArrayList();
        foreach(Business.Note note in Business.NoteController.GetNotesForEntityAndNoteType(nEntityTypeID, nMembershipID, nNoteType) )
        {
            Note msNote         = new Note();
            msNote.NoteID       = note.NoteID;
            msNote.FullName     = note.User.LastName &amp;#43; ", " &amp;#43; note.User.FirstName;
            msNote.CreateDate   = note.CreateDate;
            msNote.Text         = note.Text;
            list.Add(msNote);
        }
        return list;
        throw new InvalidOperationException("Unsupported operation type!");
    }&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;On this example, I completely got the data from outside the LINQ and just stored it in list of LIN table.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;For updates, you can do this:&lt;/p&gt;&lt;pre&gt;[WebMethod]
    public TransactionResult UpdateMembershipCheque(MembershipCheque newObject, MembershipCheque originalObject)
    { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Business.MembershipCheque cheque = Business.MembershipChequeController.GetMembershipCheque(originalObject.MembershipChequeID);
        
        cheque.BatchNo      = newObject.BatchNo;
        cheque.ChequeNo     = newObject.ChequeNo;
        cheque.DepositDate  = newObject.DepositDate;
        cheque.DueDate      = newObject.DueDate;
        cheque.Save();
        MembershipDataContext context = new MembershipDataContext();
        return new TransactionResult()
        {
            OperationType = DataSourceOperation.Update,
            ReturnValue = true
        };
    }&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;So you can build your classes and functions normally outside the LINQ schema, you on that case will need linq to exchange the data that you already collcted it.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;I hope that will help you better.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Maged&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;I hope that works good for you too.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Maged&lt;br /&gt;&lt;/p&gt;</description></item><item><title>Error with batch update using client side binding and WebService</title><link>http://www.intersoftsolutions.com/Community/WebDesktop/Error-with-batch-update-using-client-side-binding-and-WebService/</link><pubDate>Wed, 20 Oct 2010 18:12:10 GMT</pubDate><dc:creator>mmikaeel2</dc:creator><description>&lt;p&gt;Hi Dave,&lt;/p&gt;&lt;p&gt;     I found so limitation on LINQ sql, so I decide to take different root.&lt;/p&gt;
&lt;p&gt;     For example it doesn't support left join easily...etc&lt;/p&gt;
&lt;p&gt;     So you can simply run your own SQL statements on different classes/functions and from there you can collect data from different tables on store it on LINQ table on extra fields you can create manually, so next is example of that:&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: 8pt;" /&gt;&lt;/p&gt;&lt;pre&gt;[WebMethod]
    public object GetMembershipTransactions(DataSourceSelectArguments selectArguments)
    {
        MembershipDataContext context = new MembershipDataContext();
        context.DeferredLoadingEnabled = false;
        context.ObjectTrackingEnabled = false;
        int nMembershipID = 0;
        Int32.TryParse(selectArguments.FilterExpression, out nMembershipID);
        var MembershipTransactions = from membershipTransaction in context.MembershipTransactions
                                     where membershipTransaction.MembershipID == nMembershipID
                                       select new
                                       {
                                           MembershipTransactionID  = membershipTransaction.MembershipTransactionID,
                                           TransactionDate          = membershipTransaction.TransactionDate,
                                           Amount                   = membershipTransaction.Amount,
                                           &lt;em&gt;&lt;strong&gt;ChequeNo                 = GetChequeNo(membershipTransaction.MembershipChequeID),
                                           CreditCardNo             = GetCreditCardInfo(membershipTransaction.CreditCardID),
&lt;/strong&gt;&lt;/em&gt;                                           Processed                = membershipTransaction.Processed,
                                           ProcessDate              = membershipTransaction.ProcessDate,
                                           ReferenceNo              = membershipTransaction.ReferenceNo,
                                           Note                     = membershipTransaction.Note
                                       };
        return MembershipTransactions.ToList();
        throw new InvalidOperationException("Unsupported operation type!");
    }&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;As you can see, the credit card no and cheque no, I got them from different table and function without the hasle of LINQ sql statements.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Or you can even do something like this (even better:&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description></item><item><title>Error with batch update using client side binding and WebService</title><link>http://www.intersoftsolutions.com/Community/WebDesktop/Error-with-batch-update-using-client-side-binding-and-WebService/</link><pubDate>Wed, 20 Oct 2010 12:22:43 GMT</pubDate><dc:creator>dmcgoff</dc:creator><description>&lt;div style="font-family: verdana, helvetica, sans-serif; font-size: 10pt"&gt;&lt;div&gt;Hi Maged,&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;Again, thank you for solving this problem.&amp;nbsp; I have another question...&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;As you know, Intersoft has a class &lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;ISNet.Data.Linq.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #2b91af"&gt;WebGridDataProvider &lt;span style="color: #000000"&gt;which has two methods that are very useful.&amp;nbsp; The first is the &lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;
Select(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;DataSourceSelectArguments&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; selectArguments) method and the second is the &lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;BatchUpdate(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;List&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;ClientRowChanges&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&amp;gt; changes).&amp;nbsp;When a grid displays data for an entity that is mapped to one table, both of these methods work very well.&amp;nbsp; However, in our case, we want to display data from multiple tables.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;

&lt;p&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;I already asked you about BatchUpdate in my previous post.  I am also interested in how you implemented the Select method.  Below is my attempt.  I create a query which joins the two tables and places the result in a custom class which I created manually. My solution works but is very inefficient because I have to enumerate the query and place the results into a list.  If I don't, the select method throws the following exception:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;"IntersoftWebApp1.BugWithOwner' is not a valid metadata type for type filtering operations. &lt;br /&gt;Type filtering is only valid on entity types and complex types."&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;This is my code.  Would you share your solution??&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&amp;nbsp;
&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;var&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; datasource = &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;from&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; b &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;in&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; context.Bugs

&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;                 join&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; o &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;in&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; context.Owners &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;on&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; b.BugId &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;equals&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; o.BugId &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;into&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; tl_j

&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;                 from&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; j &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;in&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; tl_j.DefaultIfEmpty()

&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;                 select&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;BugWithOwner&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;
&lt;p&gt;&lt;span style="color: #0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;{&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;BugId = b.BugId,&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;ChangeInLast = b.ChangeInLast,&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Component = b.Component,&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Dupe = b.Dupe,&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;OpSys = b.OpSys,&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Severity = b.Severity,&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Summary = b.Summary,&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Target = b.Target,&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;OwnerId = j.OwnerId == &lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;null&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; ? -1 : j.OwnerId,&lt;p&gt;&lt;span style="color: #0000ff"&gt;                     &lt;/span&gt;OwnerName = j.OwnerName == &lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;null&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; ? &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 13px"&gt;""&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; : j.OwnerName,
&lt;p&gt;&lt;span style="color: #0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;};&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;null&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; ? -1 : j.OwnerId,
&lt;p&gt;&lt;span style="color: #0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;OwnerName = j.OwnerName == &lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;null&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; ? &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 13px"&gt;""&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; : j.OwnerName,&lt;p&gt;&lt;span style="color: #0000ff"&gt;                &lt;/span&gt;};&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;null&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; ? &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 13px"&gt;""&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; : j.OwnerName,
&lt;p&gt;&lt;span style="color: #0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;};&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;

&lt;p&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;IList&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;BugWithOwner&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&amp;gt; l = &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;List&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;BugWithOwner&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&amp;gt;();&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;foreach&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; (&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;BugWithOwner&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; p &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;in&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; datasource) l.Add(p);

&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;

&lt;p&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;WebGridDataProvider&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;BugWithOwner&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&amp;gt; provider = &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;WebGridDataProvider&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;BugWithOwner&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&amp;gt;(l.AsQueryable());&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;/span&gt;&lt;/span&gt; &lt;/p&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;object&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; data = provider.Select(selectArguments);

&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; (data != &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;null&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;)

&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;   return&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; data;

&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;throw&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;InvalidOperationException&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 13px"&gt;"Unsupported operation type!"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;);&lt;/span&gt;&lt;/span&gt;

&lt;p&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;/span&gt;&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>Error with batch update using client side binding and WebService</title><link>http://www.intersoftsolutions.com/Community/WebDesktop/Error-with-batch-update-using-client-side-binding-and-WebService/</link><pubDate>Tue, 19 Oct 2010 23:20:53 GMT</pubDate><dc:creator>dmcgoff</dc:creator><description>&lt;div style="font-family: verdana, helvetica, sans-serif; font-size: 10pt"&gt;&lt;div&gt;Hi Maged,&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;Your solution to the problem works great - thanks!!!&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;I'm assuming that you had to implement the "BatchUpdate" method that is provided by Intersoft because we are using multiple tables.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;This is my implementation for the update, but it doesn't seem to work.&amp;nbsp; Can you please provide your implementation??&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;
[&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;WebMethod&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;]

[&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;GenerateScriptType&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;typeof&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;BugWithOwner&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;))]

&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;TransactionResult&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; UpdateBugs(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;List&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;ClientRowChanges&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&amp;gt; changes)

&lt;p&gt;{&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;BugTrackerModelDataContext&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; context = &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;BugTrackerModelDataContext&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;();

&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #008000; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #008000; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #008000; font-size: 13px"&gt;//WebGridDataProvider&amp;lt;Bug&amp;gt; provider = new WebGridDataProvider&amp;lt;Bug&amp;gt;(context.Bugs.AsQueryable());&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #008000; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #008000; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #008000; font-size: 13px"&gt;//return provider.BatchUpdate(changes);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;foreach&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; (&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;ClientRowChanges&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; change &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;in&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; changes)

&lt;p&gt;{&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;BugWithOwner&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; bugWithOwner = (&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;BugWithOwner&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;)change.NewObject;

&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #008000; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #008000; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #008000; font-size: 13px"&gt;// ------------------ Bug Table --------------------------------------&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;Bug&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; NewBug = &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;Bug&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt;BugId = bugWithOwner.BugId,&lt;/p&gt;
&lt;p&gt;Dupe = bugWithOwner.Dupe,&lt;/p&gt;
&lt;p&gt;ChangeInLast = bugWithOwner.ChangeInLast,&lt;/p&gt;
&lt;p&gt;Component = bugWithOwner.Component,&lt;/p&gt;
&lt;p&gt;Severity = bugWithOwner.Severity,&lt;/p&gt;
&lt;p&gt;OpSys = bugWithOwner.OpSys,&lt;/p&gt;
&lt;p&gt;Target = bugWithOwner.Target,&lt;/p&gt;
&lt;p&gt;Summary = bugWithOwner.Summary,&lt;/p&gt;
&lt;p&gt;};&lt;/p&gt;
&lt;p&gt;　&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #008000; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #008000; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #008000; font-size: 13px"&gt;// Always returns a result&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;Bug&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; OriginalBug = context.Bugs.Where(b =&amp;gt; b.BugId == bugWithOwner.BugId).Single();

&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #008000; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #008000; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #008000; font-size: 13px"&gt;// Update the values&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;
&lt;p&gt;OriginalBug.BugId = NewBug.BugId;&lt;/p&gt;
&lt;p&gt;OriginalBug.Dupe = NewBug.Dupe;&lt;/p&gt;
&lt;p&gt;OriginalBug.ChangeInLast = NewBug.ChangeInLast;&lt;/p&gt;
&lt;p&gt;OriginalBug.Component = NewBug.Component;&lt;/p&gt;
&lt;p&gt;OriginalBug.Severity = NewBug.Severity;&lt;/p&gt;
&lt;p&gt;OriginalBug.OpSys = NewBug.OpSys;&lt;/p&gt;
&lt;p&gt;OriginalBug.Target = NewBug.Target;&lt;/p&gt;
&lt;p&gt;OriginalBug.Summary = NewBug.Summary;&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #008000; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #008000; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #008000; font-size: 13px"&gt;// ----------------------- Owner Table ------------------------------------&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;Owner&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; NewOwner = &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;Owner&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt;BugId = bugWithOwner.BugId,&lt;/p&gt;
&lt;p&gt;OwnerId = bugWithOwner.OwnerId,&lt;/p&gt;
&lt;p&gt;OwnerName = bugWithOwner.OwnerName,&lt;/p&gt;
&lt;p&gt;};&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #008000; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #008000; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #008000; font-size: 13px"&gt;// Original data was a left join so this may be null/blank&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #008000; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #008000; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #008000; font-size: 13px"&gt;// Updating&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; (NewOwner.OwnerId != -1)

&lt;p&gt;{&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;Owner&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; OriginalOwner = context.Owners.Where(o =&amp;gt; o.OwnerId == bugWithOwner.OwnerId).Single();

&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #008000; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #008000; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #008000; font-size: 13px"&gt;// Only field we can update&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;
&lt;p&gt;OriginalOwner.OwnerName = NewOwner.OwnerName;&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;else&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; ((NewOwner.OwnerId == -1) &amp;amp;&amp;amp; (!&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;.IsNullOrEmpty(NewOwner.OwnerName)))

&lt;p&gt;{&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #008000; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #008000; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #008000; font-size: 13px"&gt;// Create New&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;
&lt;p&gt;context.Owners.Attach(NewOwner);&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #008000; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #008000; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #008000; font-size: 13px"&gt;// Otherwise now Owner data to update&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #008000; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #008000; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #008000; font-size: 13px"&gt;// Persist changes&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;
&lt;p&gt;context.SubmitChanges();&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #008000; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #008000; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #008000; font-size: 13px"&gt;// Fake a transaction result&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;TransactionResult&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; tr = &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;TransactionResult&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt;AffectedResults = 0,&lt;/p&gt;
&lt;p&gt;Exception = &lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;null&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;,&lt;p&gt;ExceptionHandled = &lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;false&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;,
&lt;p&gt;OperationType = &lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;DataSourceOperation&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;.BatchUpdate,ReturnValue = &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;null&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;,
&lt;p&gt;ExceptionHandled = &lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;false&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;,&lt;p&gt;OperationType = &lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;DataSourceOperation&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;.BatchUpdate,
ReturnValue = &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;false&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;,
&lt;p&gt;OperationType = &lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;DataSourceOperation&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;.BatchUpdate,ReturnValue = &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 13px"&gt;DataSourceOperation&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;.BatchUpdate,
ReturnValue = &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;false&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;,

ViewName = &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;null&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;,

&lt;p&gt;};&lt;/p&gt;


&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;&lt;span style="font-family: consolas; color: #0000ff; font-size: 13px"&gt;return&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt;&lt;span style="font-family: consolas; font-size: 13px"&gt; tr;

&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>Error with batch update using client side binding and WebService</title><link>http://www.intersoftsolutions.com/Community/WebDesktop/Error-with-batch-update-using-client-side-binding-and-WebService/</link><pubDate>Tue, 19 Oct 2010 16:08:27 GMT</pubDate><dc:creator>mmikaeel2</dc:creator><description>&lt;p&gt;Hi Guys,&lt;/p&gt;&lt;p&gt;   I was not correct on my previous message about the root cause of this error.&lt;/p&gt;
&lt;p&gt; Now, I think I got it correct this time and I was able to even make it happen with the ClientBinding_BatchUpdate.aspx Intersoft sample.&lt;/p&gt;
&lt;p&gt; So, in the BugTrackerModel.designer.cs, if you define &lt;br /&gt;&lt;/p&gt;
&lt;p&gt;namespace DataSet&lt;/p&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;}&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;That will make the error happen too.&lt;/p&gt;
&lt;p&gt;In ClientBinding_BatchUpdate.aspx we have this function:&lt;/p&gt;
&lt;p&gt;function Bug()&lt;br /&gt;        {&lt;br /&gt;            this.__type = "Bug";&lt;br /&gt;            this.BugId = -1;&lt;br /&gt;            this.Dupe = null;&lt;br /&gt;            this.ChangeInLast = null;&lt;br /&gt;            this.Component = null;&lt;br /&gt;            this.Severity = null;&lt;br /&gt;            this.OpSys = null;&lt;br /&gt;            this.Target = null;&lt;br /&gt;            this.Summary = null;&lt;br /&gt;        }&lt;/p&gt;
&lt;p&gt;So to make it work again, change it to:&lt;/p&gt;
&lt;p&gt;function Bug()&lt;br /&gt;
        {&lt;br /&gt;
            this.__type = "&lt;strong&gt;&lt;em&gt;DataSet.&lt;/em&gt;&lt;/strong&gt;Bug";&lt;br /&gt;
            this.BugId = -1;&lt;br /&gt;
            this.Dupe = null;&lt;br /&gt;
            this.ChangeInLast = null;&lt;br /&gt;
            this.Component = null;&lt;br /&gt;
            this.Severity = null;&lt;br /&gt;
            this.OpSys = null;&lt;br /&gt;
            this.Target = null;&lt;br /&gt;
            this.Summary = null;&lt;br /&gt;
        }&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;That set!&lt;/p&gt;
&lt;p&gt;Damn, three days to find out that!&lt;/p&gt;
&lt;p&gt;I guess Intersoft need to change their sample to match this scenario!&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Maged Mikaeel&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description></item><item><title>Error with batch update using client side binding and WebService</title><link>http://www.intersoftsolutions.com/Community/WebDesktop/Error-with-batch-update-using-client-side-binding-and-WebService/</link><pubDate>Tue, 19 Oct 2010 14:59:14 GMT</pubDate><dc:creator>dmcgoff</dc:creator><description>&lt;p&gt;Can you post the code edits you made to fix this?  &lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Dave&lt;/p&gt;</description></item><item><title>Error with batch update using client side binding and WebService</title><link>http://www.intersoftsolutions.com/Community/WebDesktop/Error-with-batch-update-using-client-side-binding-and-WebService/</link><pubDate>Tue, 19 Oct 2010 13:36:53 GMT</pubDate><dc:creator>mmikaeel2</dc:creator><description>&lt;p&gt;Okay, fixed ......&lt;/p&gt;&lt;p&gt;So there is always work around to fix errors.&lt;/p&gt;
&lt;p&gt;But I believe you guys at Intersoft need to do something to fix this issue from your side instead of the work around that I implemented!&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;So here is the fix:&lt;/p&gt;
&lt;p&gt;1- My grid doesn't have all the fields from the table, as I don't need to display them all.&lt;/p&gt;
&lt;p&gt;2- I have another fields from different tables displayed on the same grid.&lt;/p&gt;
&lt;p&gt;3- The main issues is, you need to pass an object from the GRID to the update function, and that object has to match exactly the fields in the grid.&lt;/p&gt;
&lt;p&gt;4- I created a table class in my data context with properties exactly the same as the fields in the grid.&lt;/p&gt;
&lt;p&gt;5- I changed the update function to have the send parameter with the new created class instead of the original table class from the database.&lt;/p&gt;
&lt;p&gt;6- I used the original class to save the data.&lt;/p&gt;
&lt;p&gt;7- returned fake transaction result for success.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;That stopped this error of happening.&lt;/p&gt;
&lt;p&gt;I still believe that Intersoft need to fox that from the engine instead of creating fake classes like that.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Maged&lt;br /&gt;&lt;/p&gt;</description></item><item><title>Error with batch update using client side binding and WebService</title><link>http://www.intersoftsolutions.com/Community/WebDesktop/Error-with-batch-update-using-client-side-binding-and-WebService/</link><pubDate>Tue, 19 Oct 2010 00:22:51 GMT</pubDate><dc:creator>dmcgoff</dc:creator><description>&lt;p&gt;Glenn,&lt;/p&gt;
&lt;p&gt;Were you able to recreate my error using the sample I provided?&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;The error is a JavaScript error.  The request never gets fired to the Web Service.  Here is the error:&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;{"Message":"Operation is not valid due to the current state of the object.","StackTrace":" at System.Web.Script.Serialization.ObjectConverter.ConvertDictionaryToObject(IDictionary`2 dictionary, Type type, JavaScriptSerializer serializer, Boolean throwOnError, Object&amp; convertedObject)\r\n at System.Web.Script.Serialization.ObjectConverter.ConvertObjectToTypeInternal(Object o, Type type, JavaScriptSerializer serializer, Boolean throwOnError, Object&amp; convertedObject)\r\n at System.Web.Script.Serialization.ObjectConverter.ConvertObjectToTypeMain(Object o, Type type, JavaScriptSerializer serializer, Boolean throwOnError, Object&amp; convertedObject)\r\n at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32 depth)\r\n at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeDictionary(Int32 depth)\r\n at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32 depth)\r\n at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeList(Int32 depth)\r\n at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32 depth)\r\n at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeDictionary(Int32 depth)\r\n at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32 depth)\r\n at System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize(String input, Int32 depthLimit, JavaScriptSerializer serializer)\r\n at System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer serializer, String input, Type type, Int32 depthLimit)\r\n at System.Web.Script.Serialization.JavaScriptSerializer.Deserialize[T](String input)\r\n at System.Web.Script.Services.RestHandler.GetRawParamsFromPostRequest(HttpContext context, JavaScriptSerializer serializer)\r\n at System.Web.Script.Services.RestHandler.GetRawParams(WebServiceMethodData methodData, HttpContext context)\r\n at System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)","ExceptionType":"System.InvalidOperationException"}&lt;/p&gt;</description></item><item><title>Error with batch update using client side binding and WebService</title><link>http://www.intersoftsolutions.com/Community/WebDesktop/Error-with-batch-update-using-client-side-binding-and-WebService/</link><pubDate>Tue, 19 Oct 2010 00:20:18 GMT</pubDate><dc:creator>mmikaeel2</dc:creator><description>&lt;p&gt;That will not work, as the error is generated before we reach the update function it self, so I believe any change in the update function itself will not help, as the error still happening before we go there!&lt;br /&gt;&lt;/p&gt;</description></item><item><title>Error with batch update using client side binding and WebService</title><link>http://www.intersoftsolutions.com/Community/WebDesktop/Error-with-batch-update-using-client-side-binding-and-WebService/</link><pubDate>Tue, 19 Oct 2010 00:09:36 GMT</pubDate><dc:creator>Glayaar</dc:creator><description>&lt;p&gt;Have you trind manually updating the database instead of using WebGridDataProvider? After a successful operation, you will need to return TransactionResult object as detaild in the article &lt;em&gt;"Transaction Operations (Insert, Update and Delete)"&lt;/em&gt; in the WebGrid documentation. &lt;/p&gt;&lt;p&gt;Here is the update snippet for a composite table, exception handling is not implemented: &lt;/p&gt;&lt;pre&gt;[WebMethod]&lt;br /&gt;[GenerateScriptType(typeof(BugCustom))]&lt;br /&gt;public TransactionResult UpdateBugsCustom(List&amp;lt;ClientRowChanges&amp;gt; changes)&lt;br /&gt;{&lt;br /&gt;    BugTrackerEntities context = new BugTrackerEntities();&lt;br /&gt;&lt;br /&gt;    BugTrackerModel.Bug bSingle = null;&lt;br /&gt;    BugTrackerModel.Owner oSingle = null;&lt;br /&gt;&lt;br /&gt;    foreach(ClientRowChanges change in changes)&lt;br /&gt;    {&lt;br /&gt;        BugCustom currRow = (BugCustom)change.NewObject;&lt;br /&gt;        bSingle = context.Bugs.SingleOrDefault(b =&amp;gt; b.BugId == currRow.BugId);&lt;br /&gt;        bSingle.Summary = currRow.Summary;&lt;br /&gt;&lt;br /&gt;        oSingle = context.Owners.SingleOrDefault(o =&amp;gt; o.OwnerID == currRow.OwnerID);&lt;br /&gt;        oSingle.OwnerName = currRow.OwnerName;&lt;br /&gt;    }&lt;br /&gt;        &lt;br /&gt;    int saveResult = context.SaveChanges();&lt;br /&gt;&lt;br /&gt;    return new TransactionResult(){&lt;br /&gt;        AffectedResults = saveResult,&lt;br /&gt;        OperationType = DataSourceOperation.BatchUpdate,&lt;br /&gt;        ReturnValue = true  &lt;br /&gt;    };&lt;br /&gt;}&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description></item><item><title>Error with batch update using client side binding and WebService</title><link>http://www.intersoftsolutions.com/Community/WebDesktop/Error-with-batch-update-using-client-side-binding-and-WebService/</link><pubDate>Sun, 17 Oct 2010 01:00:32 GMT</pubDate><dc:creator>mmikaeel2</dc:creator><description>&lt;p&gt;I have a WebGrid, enabled batch update, client side binding using werbserive.&lt;/p&gt;
&lt;p&gt;The reading works perfect and really fast.&lt;/p&gt;
&lt;p&gt;My issue is with the write functionality, it always display an error which I really can't figure out!&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;I checked everything, all looks ok, so please help me on this!&lt;/p&gt;
&lt;p&gt;The data context code was auto generated, so no mistake on that.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;So this is the WebSerive update function:&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;WebMethod]&lt;br /&gt;[GenerateScriptType(typeof(MembershipCheque))]&lt;br /&gt;public TransactionResult BatchUpdateMembershipCheques(List&amp;lt;ClientRowChanges&amp;gt; changes)&lt;br /&gt;    {&lt;br /&gt;        MembershipDataContext context = new MembershipDataContext();&lt;br /&gt;        WebGridDataProvider&amp;lt;MembershipCheque&amp;gt; provider = new WebGridDataProvider&amp;lt;MembershipCheque&amp;gt;(context.MembershipCheques.AsQueryable());&lt;br /&gt;        return provider.BatchUpdate(changes);&lt;br /&gt;    }&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;This is the error I got:&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;{"Message":"Operation is not valid due to the current state of the object.","StackTrace":" at System.Web.Script.Serialization.ObjectConverter.ConvertDictionaryToObject(IDictionary`2 dictionary, Type type, JavaScriptSerializer serializer, Boolean throwOnError, Object&amp; convertedObject)\r\n at System.Web.Script.Serialization.ObjectConverter.ConvertObjectToTypeInternal(Object o, Type type, JavaScriptSerializer serializer, Boolean throwOnError, Object&amp; convertedObject)\r\n at System.Web.Script.Serialization.ObjectConverter.ConvertObjectToTypeMain(Object o, Type type, JavaScriptSerializer serializer, Boolean throwOnError, Object&amp; convertedObject)\r\n at System.Web.Script.Serialization.ObjectConverter.ConvertObjectToType(Object o, Type type, JavaScriptSerializer serializer)\r\n at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32 depth)\r\n at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeDictionary(Int32 depth)\r\n at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32 depth)\r\n at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeList(Int32 depth)\r\n at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32 depth)\r\n at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeDictionary(Int32 depth)\r\n at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32 depth)\r\n at System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize(String input, Int32 depthLimit, JavaScriptSerializer serializer)\r\n at System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer serializer, String input, Type type, Int32 depthLimit)\r\n at System.Web.Script.Serialization.JavaScriptSerializer.Deserialize[T](String input)\r\n at System.Web.Script.Services.RestHandler.GetRawParamsFromPostRequest(HttpContext context, JavaScriptSerializer serializer)\r\n at System.Web.Script.Services.RestHandler.GetRawParams(WebServiceMethodData methodData, HttpContext context)\r\n at System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)","ExceptionType":"System.InvalidOperationException"}&lt;br /&gt;&lt;/p&gt;</description></item></channel></rss>