anchor.diff:                                ((%%dc : obj ):?> IWithDataContext ).DataContext.SubmitChangedEntity e
                                 e 
                             @@>)
  -
  +                    let desc3 = 
  +                        let cols = columns |> Seq.map(fun c -> c.Name)
  +                        "Item array of database columns: \r\n" + String.Join(",", cols)
  +                    create3.AddXmlDoc (sprintf "<summary>%s</summary>" desc3)
  +
  +
  +                    // ``Create(...)``: ('a * 'b * 'c * ...) -> SqlEntity 
  +
  +                    let template=
  +                        let cols = normalParameters |> Seq.map(fun c -> c.Name )
  +                        "Create(" + String.Join(", ", cols) + ")"
  +                    let create4 = ProvidedMethod(template, normalParameters, entityType, InvokeCode = fun args ->                           
  +                          let dc = args.Head
  +                          let args = args.Tail
  +                          let columns =
  +                              Expr.NewArray(
  +                                      typeof<string*obj>,
  +                                      args
  +                                      |> Seq.toList
  +                                      |> List.mapi(fun i v -> Expr.NewTuple [ Expr.Value normalParameters.[i].Name 
  +                                                                              Expr.Coerce(v, typeof<obj>) ] ))
  +                          <@@
  +                              let e = ((%%dc : obj ):?> IWithDataContext).DataContext.CreateEntity(key)
  +                              e._State <- Created                            
  +                              e.SetData(%%columns : (string *obj) array)
  +                              ((%%dc : obj ):?> IWithDataContext ).DataContext.SubmitChangedEntity e
  +                              e 
  +                          @@>)
  +                    create4.AddXmlDoc("Create version that breaks if your columns change.")
                       
  +                    // This genertes a template.
  +
                       seq {
                        yield ProvidedProperty("Individuals",Seq.head it, GetterCode = fun args -> <@@ ((%%args.[0] : obj ):?> IWithDataContext ).DataContext @@> ) :> MemberInfo
  +                     if normalParameters.Length > 0 then yield create2 :> MemberInfo
  +                     yield create3 :> MemberInfo
                        yield create1 :> MemberInfo
  -                     if normalParameters.Length > 0 then yield create2 :> MemberInfo
  -                     yield create3 :> MemberInfo } |> Seq.toList
  +                     yield create4 :> MemberInfo } |> Seq.toList
                   )
   
                   let buildTableName = SchemaProjections.buildTableName >> caseInsensitivityCheck
  
positive.code:                             e 
                          @@> )
                      
                      let create2 = ProvidedMethod("Create", normalParameters, entityType, InvokeCode = fun args -> 
                            let dc = args.Head
                            let args = args.Tail
                            let columns =
  
negative.code:                     let normalParameters = 
                          columns 
                          |> List.map(fun c -> ProvidedParameter(c.Name,Type.GetType c.TypeMapping.ClrType))
                          |> List.sortBy(fun p -> p.Name)
                      
                      // Create: unit -> SqlEntity 
                      let create1 = ProvidedMethod("Create", [], entityType, InvokeCode = fun args ->                         
                          <@@ 
                              let e = ((%%args.[0] : obj ):?> IWithDataContext).DataContext.CreateEntity(key)
  