CodeDom: Fix codegen for src/DbLinq.MySql/Test/NorthwindMySql.dbml.
CodeDom: Fix codegen for src/DbLinq.MySql/Test/NorthwindMySql.dbml.

Given the command:

  DbMetal /provider:Sqlite/language:C# /code:o.cs NorthwindMySql.dbml

(...chosen because it contains <Function/>s with 'Out' parameters...)

The generated code was invalid for a variety of reasons:
  - MethodBase.GetCurrentMethod() wasn't properly referenced and was missing
    a cast to MethodInfo.
  - Some <Association/>s were missing @Storage attributes, resulting in 
    references to members that didn't exist.  Fixed this by auto-generating
    a backing field based on the association name.
  - OnValueChanging() use was inconsistent (caught because 
    //Type[@Name='CaseTest']/Column[@Name='value0'] differed from it's 
    @Member value).
  - DbMetal was using //Table/@Member for type names, not //Table/Type/@Name.
    //*/@Type refers to //Table/Type/@Name, NOT //Table/@Member.
    For example, //Table[@Member='Categories']/Association[@Name="products_ibfk_1"]
    refers to the @Type of 'Product', and thus the generated code will refer to 
    a 'Product' type.  However, there is no //Table[@Member='Product'] element,
    so the resulting code would reference types that aren't actually generated.

    Using //Table/Type/@Name has the added benefit that it appears to match
    the behavior of .NET SqlMetal.  Thus, if using the same .dbml file
    (and no automagic pluralization), DbMetal should use the same type and
    member names now.


vinodvar/dblinq,Avira/dblinq,vinodvar/dblinq,Avira/dblinq