I know this is an older post, but just in case others come across this same issues and/or you have not already figured out you issue ill post a short reply.
Fist check your Task.cs class where you declare you CompletedOnDate and make sure you add the ? to DateTime as shown below.
///<summary>
Fist check your Task.cs class where you declare you CompletedOnDate and make sure you add the ? to DateTime as shown below.
///<summary>
/// A date for the actual completion date of the task
///</summary>
public DateTime? CompletedOnDate { get; set; }
There are a few other ways to re work the DateTime and one is to use SqlDateTime. which is what I did the first time around. but for this tutorial the ? will do fine. I have tried it in vs2008, 2010 and 2012 and have had no issues thus far.