Ok, I successfully got the workflow to work in my application.
As much as I'd like to say I found the problem, I can't. But I have pinpointed the problem to the database and sproc implementation. I don't know if you created the tables and procedures manually or not... I'm thinking not.. because I initially did and after using the sample sql code it worked. Here's what I did to arrive at this conclusion:
- Over the weekend I added the sample PaidTimeOff DAL & BLL into my app and used it with my UI.. IT WORKED..!!
So the CustomGridView is NOT the problem.
- I modified my BLL to use the PaidTimeOff DAL and IT WORKED..!!
So the BLL is not the problem.
- I modified the PaidTimeOff BLL to use my DAL and IT FLOPPED..!!
So, I pinpointed it to somewhere in my DAL.
With that, I matched my DAL exactly to the one in PaidTimeOff, except for the .dbml file, that is impossible. It still didn't work.
- FINALLY, I took the sql files in the Chapter 7 folder (tables & sprocs) and patiently converted the naming structure to match my database schema and ran it into my database.
- I then moved everything to a new dbml file with the ORM (the exact same way as I did in the past.. dragging to the sprocs to either the method pane or onto the table entity). I'm sure it's already a given that not all select sprocs are to be dropped onto the table and should be in the method pane.
- With my initial UI, BLL, and DAL .cs files (so only the dbml is new). The workflow worked just fine. I thoroughly tested the workflow, moving multiple requests back and forth between users and it worked as it should...
So all I can say is that somewhere in the table/sproc implementation there must be a constraint, relationship, default value, or something that I missed causing the problem.
While this is not the answer, it was the solution (at least for me). If this is important to implement and you don't want to use the provided sample schema. Then I suggest working the sql files over and giving it a try.
If you find the problem, or if anyone else (Vince) knows about this, I'd still would like to know what is the fix.