List<ForeignKey> LoadForeignKeys(string tblName)
        {
            using (var cmd=this._factory.CreateCommand())
            {
                cmd.Connection=this._connection;
                cmd.CommandText=String.Format(FKEY_INFO_SQL,tblName);

                var result=new List<ForeignKey>();
                using (IDataReader rdr=cmd.ExecuteReader())
                {
                    while(rdr.Read())
                    {
                        ForeignKey key=new ForeignKey();
                        key.PrimaryTable=rdr["table"].ToString();
                        key.PrimaryColumns=new [] { rdr["to"].ToString() };
                        key.ForeignColumns=new [] { rdr["from"].ToString() };
                        result.Add(key);
                    }
                }
                return result;
            }
        }
 public string GetUpdateDeleteRule(ForeignKey fk)
 {
     var sb = new System.Text.StringBuilder();
     if (fk.UpdateRule!=System.Data.Rule.None)
         sb.AppendFormat(".OnUpdate(System.Data.Rule.{0})", fk.UpdateRule);
     if (fk.DeleteRule != System.Data.Rule.None)
         sb.AppendFormat(".OnDelete(System.Data.Rule.{0})", fk.DeleteRule);            
     return sb.ToString();
 }