using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using Ant.Frame;
using System.Linq;
using System.Linq.Expressions;
using Ant.Data;
using System.Reflection;
using Ant.DbExpressions;
using Ant.Common;
using Ant.Descriptors;
namespace Ant.ORM
{
public class MSSqlQueryCommandBuilder : QueryCommandBuilder
{
public override QueryCommand GetQueryCommand()
{
QueryCommand cmd = null;
EntityPersistType strtype = (!PersistType.IsNull()) ? PersistType : Md.PersistType;//如果PersistType不为空说明方法赋了操作方式,否则到实体中获取操作方式
switch (strtype)
{
case EntityPersistType.Save:
cmd = ParserInsertCommand();
break;
case EntityPersistType.Update:
cmd = ParserUpdateEntyCommand();
break;
case EntityPersistType.Delete:
cmd = ParserDeleteCommand();
break;
case EntityPersistType.Query://查询
cmd = ParserSelectCommand();
break;
case EntityPersistType.Sum://统计记录数
cmd = ParserSumCommand();
break;
case EntityPersistType.eNonDelete://假删除
cmd = ParserEXCommand();
break;
case EntityPersistType.QueryPage://查询分页
cmd = ParserQueryPageCommand();
break;
}
return cmd;
}
#region 解析假删除
private QueryCommand ParserEXCommand()
{
QueryCommand qc = new QueryCommand();
//StringBuilder sql = new StringBuilder(); var FM = Md.FiledMeta;//列属性
//if (SqlType == SqlEnum.MainSql)
//{
// foreach (string key in Md.Fields.Keys)
// {
// if (!FM.FieldMeteDatas[key].IsAutoincrement)
// {
// QueryParameter parameter = new QueryParameter();
// parameter.ParameterName = "@" + FM.FieldMeteDatas[key].ColumnName;
// parameter.DbType = FM.FieldMeteDatas[key].ColumnType;
// parameter.Value = Md.Fields[key];
// qc.Parameters.Add(parameter);
// }
// }
//}
//if (SqlType == SqlEnum.ChildSql)
//{
// foreach (ChildMataData childmod in FM.ChildObjects.Values)
// {
// }
//}
//if (SqlType == SqlEnum.ReferenceSql)
//{
// foreach (ReferenceMataData refermod in FM.ReferenceObjects.Values)
// {
// }
//}
//qc.CommandText = sql.ToString();
return qc;
}
#endregion
#region 解析Insert SQL
///
/// 解析Insert SQL
///
///
private QueryCommand ParserInsertCommand()
{
QueryCommand qc = new QueryCommand();
List columnlist = new List();
List paramlist = new List();
List valuelist = new List();
bool IsAutoincrement = false;
var typedesc = Md.FiledMeta.MemberColumnMap;
foreach (var kv in typedesc)
{
MemberInfo member = kv.Key;
//Md.FiledMeta.Fields.Add(member);
MappingMemberDescriptor memberDescriptor = MetaDataManager.TryGetMappingMemberDescriptor(kv.Key, Md.FiledMeta);
var val = (Md.FieldsColumns.Keys.Contains(member.Name)) ? Md.FieldsColumns[member.Name].Value : null;
if (!MetaDataManager.IsAutoIncrement(memberDescriptor, Md))
{
columnlist.Add(string.Format("[{0}]", memberDescriptor.Column.Name));
paramlist.Add("@" + memberDescriptor.Column.Name);
QueryParameter parameter = new QueryParameter();
parameter.ParameterName = "@" + memberDescriptor.Column.Name;
parameter.DbType = (DbType)AntUtils.TryGetDbType(memberDescriptor.Column.Type);
parameter.Direction = ParameterDirection.Input;
if (val.IsNull())
val = SetDefaultValue(parameter.DbType);
parameter.Value = val;
valuelist.Add("'" + val + "'");
qc.Parameters.Add(parameter);
}
}
string sqlstr = string.Format(ConstSql.SQL_INSERT_TABLE, Md.FiledMeta.Table.Name, columnlist.AppendStrings(), paramlist.AppendStrings(),
IsAutoincrement ? ConstSql.SQL_SCOPE_IDENTITY : string.Empty);
qc.CommandText = sqlstr;
qc.SqlString = string.Format(ConstSql.SQL_INSERT_TABLE, Md.FiledMeta.Table.Name, columnlist.AppendStrings(),
valuelist.AppendStrings(), IsAutoincrement ? ConstSql.SQL_SCOPE_IDENTITY : string.Empty);
return qc;
}
#endregion
///
/// 获取自增长ID
///
///
public string GetLastInsertID()
{
return "SELECT ISNULL(SCOPE_IDENTITY(),@@rowcount)";
}
#region 解析Update SQL语句
///
/// 解析Update SQL语句
///
///
private QueryCommand ParserUpdateEntyCommand()
{
//string strsql = string.Format(" UPDATE {0} SET {1} WHERE {2} ", Md.TableName, "", "");
QueryCommand qc = new QueryCommand(); string strwhere = string.Empty;
StringBuilder sql = new StringBuilder();//SQL语句
StringBuilder sqlstr = new StringBuilder();
List updateColumns = new List();//更新列
List StrupdateColumns = new List();
List WhereColumn = new List();//条件列
List StrWhereColumn = new List();//条件列
sql.AppendFormat("UPDATE [{0}] SET ", Md.FiledMeta.Table.Name);
List condition = new List();
#region 更新字段
if (Md.UpdateColumns.IsNull())
{
var typedesc = Md.FiledMeta.MemberColumnMap;
if (Md.FiledMeta.AutoIncrement.IfNotNull())
{
//IsAutoincrement = true;
typedesc.Remove(Md.FiledMeta.AutoIncrement.MemberInfo);
}
foreach (var kv in typedesc)
{
MemberInfo member = kv.Key;
MappingMemberDescriptor memberDescriptor = MetaDataManager.TryGetMappingMemberDescriptor(member, Md.FiledMeta);
var column = memberDescriptor.Column;
updateColumns.Add(string.Format("[{0}]=@{0}", column.Name));
qc.Parameters.Add("@" + column.Name, (DbType)AntUtils.TryGetDbType(column.Type), column.Value);
StrupdateColumns.Add(string.Format("[{0}]='{1}'", column.Name, column.Value));
}
}
else
{
foreach (var column in Md.UpdateColumns)
{
if (column.Value.Value.IfNotNull())
{
updateColumns.Add(string.Format("[{0}]=@{0}", column.Key));
qc.Parameters.Add("@" + column.Key, (DbType)AntUtils.TryGetDbType(column.Value.Type), column.Value.Value);
StrupdateColumns.Add(string.Format("[{0}]='{1}'", column.Key, column.Value.Value));
}
}
}
#endregion
if (Md.FiledMeta.PrimaryKey.Column.Value.IfNotNull())//通过主键作用查询条件
{
WhereColumn.Add(string.Format("[{0}]=@{0}", Md.FiledMeta.PrimaryKey.MemberInfo.Name));
qc.Parameters.Add("@" + Md.FiledMeta.PrimaryKey.Column.Name, (DbType)AntUtils.TryGetDbType(Md.FiledMeta.PrimaryKey.Column.Type), Md.FiledMeta.PrimaryKey.Column.Value);
StrWhereColumn.Add(string.Format("[{0}]='{1}'", Md.FiledMeta.PrimaryKey.Column.Name, Md.FiledMeta.PrimaryKey.Column.Value));
}
else
{//通过查询实体进行查询
#region 给实体赋值的查询条件更新
foreach (var key in Md.WhereColumns.Values)
{
WhereColumn.Add(string.Format("[{0}]=@{0}", key.Name));
qc.Parameters.Add("@" + key.Name, (DbType)AntUtils.TryGetDbType(key.Type), key.Value);
StrWhereColumn.Add(string.Format("[{0}]={1}", key.Name, key.Value));
}
#endregion
}
if (updateColumns.Count > 0)//更新字段
{
#region 带时间戳
if (Md.FieldsColumns.ContainsKey("Version"))
{
//WhereColumn.Add(string.Format(" {0}+0=@{0}", Md.FieldMeteDatas["Version"].ColumnName));
WhereColumn.Add(string.Format(" CONVERT(bigint,{0})=@{0}", Md.FieldsColumns["Version"].Name));
qc.Parameters.Add("@" + Md.FieldsColumns["Version"].Name, (DbType)AntUtils.TryGetDbType(Md.FieldsColumns["Version"].Type), Md.FieldsColumns["Version"].Value);
StrWhereColumn.Add(string.Format(" CONVERT(bigint,{0})='{1}'", Md.FieldsColumns["Version"].Name, Md.FieldsColumns["Version"].Value));
}
#endregion
sql.Append(string.Join(",", updateColumns.ToArray())).Append(" WHERE ").Append(string.Join(" AND ", WhereColumn.ToArray()));
if (!string.IsNullOrEmpty(Md.WhereSql))
{//有自定义查询条件的时候
if (Md.WhereSql.Trim().Length > 0) WhereColumn.Add(Md.WhereSql);
}
if (Predicate.IfNotNull())
{
var FlieldWhere = new FieldValueCollection();
strwhere = Predicate.GetSql(FlieldWhere, qc);//拼接SQL语句
if (!strwhere.IsEmpty())
{
sql.AppendFormat(" and {0} ", strwhere);
foreach (string key in FlieldWhere.Keys)
{
strwhere = strwhere.Replace(key.ToString(), "'" + FlieldWhere[key].ToString() + "'");
}
sqlstr.AppendFormat(" and {0} ", strwhere);
}
}
qc.CommandText = sql.ToString();
qc.SqlString = string.Format(ConstSql.SQL_UPDATE_TABLE, Md.FiledMeta.Table.Name, string.Join(",", StrupdateColumns.ToArray()), string.Join(" AND ", StrWhereColumn.ToArray()) + (strwhere.IsEmpty() ? strwhere : " and " + strwhere));
}
return qc;
}
#endregion
#region 解析 Delete SQL语句
///
/// 解析 Delete SQL语句
///
///
private QueryCommand ParserDeleteCommand()
{
QueryCommand qc = new QueryCommand();
StringBuilder sql = new StringBuilder();
StringBuilder sqlstr = new StringBuilder();
List WhereColumn = new List();//条件列集合
List WhereColumnStr = new List();
if (!Md.FieldsColumns.IsNull())
{
foreach (string key in Md.FieldsColumns.Keys)//查询条件
{
//if (!Object.Equals(Md.Fields[key], null) || !Object.Equals(Md.Fields[key], DBNull.Value))
if (!(Md.FieldsColumns[key].IsNull()))
{
if (!Md.FieldsColumns[key].Value.ToString().IsEmpty())
{
WhereColumn.Add(string.Format(" [{0}].{1}=@{2} ", Md.FiledMeta.Table.Name, Md.FieldsColumns[key].Name, Md.FieldsColumns[key].Name));
qc.Parameters.Add("@" + Md.FieldsColumns[key].Name, (DbType)AntUtils.TryGetDbType(Md.FieldsColumns[key].Type), Md.FieldsColumns[key].Value);
WhereColumnStr.Add(string.Format(" [{0}].{1}={2} ", Md.FiledMeta.Table.Name, Md.FieldsColumns[key].Name, Md.FieldsColumns[key].Value));
}
}
}
}
if (!Md.WhereSql.IsNull())
{
if (Md.WhereSql.Trim().Length > 0)
{
string sqlwherestr = (Md.WhereSql.StartsWith("(") && Md.WhereSql.EndsWith(")")) ? Md.WhereSql : " (" + Md.WhereSql + ") ";
WhereColumn.Add(sqlwherestr);
WhereColumnStr.Add(sqlwherestr);
}
}
sql.AppendFormat(ConstSql.SQL_DELETE_DATA, Md.FiledMeta.Table.Name, (WhereColumn.Count > 0) ? string.Format(" and {0}", string.Join(" AND ", WhereColumn.ToArray())) : string.Empty);
sqlstr.AppendFormat(ConstSql.SQL_DELETE_DATA, Md.FiledMeta.Table.Name, (WhereColumnStr.Count > 0) ? string.Format(" and {0}", string.Join(" AND ", WhereColumnStr.ToArray())) : string.Empty);
if (Predicate.IfNotNull())
{
var FlieldWhere = new FieldValueCollection();
string strwhere = Predicate.GetSql(FlieldWhere, qc);//拼接SQL语句
if (!strwhere.IsEmpty())
{
sql.AppendFormat(" and {0} ", strwhere);
foreach (string key in FlieldWhere.Keys)
{
strwhere = strwhere.Replace(key.ToString(), "'" + FlieldWhere[key].ToString() + "'");
}
sqlstr.AppendFormat(" and {0} ", strwhere);
}
}
qc.CommandText = sql.ToString();
qc.SqlString = sqlstr.ToString();
return qc;
}
#endregion
#region 解析 Select SQL语句
///
/// 解析 Select SQL语句
///
///
private QueryCommand ParserSelectCommand()
{
QueryCommand qc = new QueryCommand() { DbParmChar = DbParmChar };
StringBuilder sql = new StringBuilder();
StringBuilder sqlstr = new StringBuilder();
switch (SqlType)
{
case SqlEnum.MainSql:
{
string topnum = Top.IsEmpty() ? string.Empty : " top " + Top;
sql.AppendFormat(ConstSql.SQL_GET_VALUE, topnum, FieldColumn(), Md.FiledMeta.Table.Name);//显示自定义的字段
List WhereColumn = new List();//条件列集合
List WhereColumnStr = new List();//条件列集合
if (Md.FieldsColumns.IfNotNull())//查询条件
{
foreach (string key in Md.FieldsColumns.Keys)
{
var field = Md.FieldsColumns[key];
if (!(field.Value.IsNull()))
{
if (!field.Value.ToString().IsEmpty())
{
WhereColumn.Add(string.Format(" [{0}].{1}=@{2} ", Md.FiledMeta.Table.Name, field.Name,
field.Name));
qc.Parameters.Add("@" + field.Name, (DbType)AntUtils.TryGetDbType(field.Type), field.Value);
WhereColumnStr.Add(string.Format(" [{0}].{1}='{2}' ", Md.FiledMeta.Table.Name, field.Name, field.Value));
}
}
}
}
else
{
if (!Md.WhereSql.IsEmpty()) sql.AppendFormat(" and {0} ", Md.WhereSql);
}
sqlstr.Append(sql.ToString());
if (WhereColumn.Count > 0) sql.AppendFormat(" and {0} ", string.Join(" AND ", WhereColumn.ToArray()));
if (WhereColumnStr.Count > 0) sqlstr.AppendFormat(" and {0} ", string.Join(" AND ", WhereColumnStr.ToArray()));
if (Predicate.IfNotNull())
{
var FlieldWhere = new FieldValueCollection();
string strwhere = Predicate.GetSql(FlieldWhere, qc);//拼接SQL语句
if (!strwhere.IsEmpty())
{
sql.AppendFormat(" and {0} ", strwhere);
foreach (string key in FlieldWhere.Keys)
{
strwhere = strwhere.Replace(key.ToString(), "'" + FlieldWhere[key].ToString() + "'");
}
sqlstr.AppendFormat(" and {0} ", strwhere);
}
}
string orderstr = GetOrderBy();
sql.Append(orderstr);
sqlstr.Append(orderstr);
WhereColumn = null; WhereColumnStr = null;
}
break;
}
qc.CommandText = sql.ToString();
qc.SqlString = sqlstr.ToString();
sqlstr = null; sql = null;
return qc;
}
///
/// 获取排序
///
///
public string GetOrderBy()
{
string orderbystr = string.Empty;
if (Sort.IsNull())
{
orderbystr = (orderbystr.Trim().IndexOf("order by", StringComparison.InvariantCultureIgnoreCase) != -1) ? string.Format(" {0} ", Md.FiledMeta.PrimaryKey.MemberInfo.Name) : string.Format(" order by {0}", Md.FiledMeta.PrimaryKey.MemberInfo.Name);
}
else
{
string orderby = string.Empty;
foreach (ISort sort in Sort)
{
if (orderby.IsEmpty())
{
orderby = sort.PropertyName + (sort.Ascending ? " ASC" : " DESC");
}
else
{
orderby += " ," + sort.PropertyName + (sort.Ascending ? " ASC" : " DESC");
}
}
orderbystr = string.Format(" ORDER BY {0} ", orderby);
}
return orderbystr;
}
///
/// 解析 Select 所有记录 SQL语句
///
///
private QueryCommand ParserSumCommand()
{
QueryCommand qc = new QueryCommand();
StringBuilder sql = new StringBuilder();
StringBuilder sqlstr = new StringBuilder();
sql.AppendFormat(" SELECT COUNT(1) FROM [{0}] with(nolock) WHERE 1=1 ", Md.FiledMeta.Table.Name);
sqlstr.AppendFormat(" SELECT COUNT(1) FROM [{0}] with(nolock) WHERE 1=1 ", Md.FiledMeta.Table.Name);
List WhereColumn = new List();//条件列集合
List WhereColumnStr = new List();//条件列集合
if (!Md.FiledMeta.Fields.IsNull())
{
foreach (string key in Md.FieldsColumns.Keys)//查询条件
{
//if (!Object.Equals(Md.Fields[key], null) || !Object.Equals(Md.Fields[key], DBNull.Value))
if (!(Md.FieldsColumns[key].IsNull()))
{
if (!Md.FieldsColumns[key].Value.ToString().IsEmpty())
{
WhereColumn.Add(string.Format(" [{0}].{1}=@{2} ", Md.FiledMeta.Table.Name, Md.FieldsColumns[key].Name, Md.FieldsColumns[key].Name));
qc.Parameters.Add("@" + Md.FieldsColumns[key].Name, (DbType)AntUtils.TryGetDbType(Md.FieldsColumns[key].Type), Md.FieldsColumns[key].Value);
WhereColumnStr.Add(string.Format(" [{0}].{1}='{2}' ", Md.FiledMeta.Table.Name, Md.FieldsColumns[key].Name, Md.FieldsColumns[key].Value));
}
}
}
}
if (!Md.WhereSql.IsNull())
{
if (Md.WhereSql.Trim().Length > 0)
{
string sqlwherestr = (Md.WhereSql.StartsWith("(") && Md.WhereSql.EndsWith(")")) ? Md.WhereSql : " (" + Md.WhereSql + ") ";
WhereColumn.Add(sqlwherestr);
WhereColumnStr.Add(sqlwherestr);
}
}
if (WhereColumn.Count > 0) sql.AppendFormat(" and {0} ", string.Join(" AND ", WhereColumn.ToArray()));
if (WhereColumnStr.Count > 0) sqlstr.AppendFormat(" and {0} ", string.Join(" AND ", WhereColumnStr.ToArray()));
if (Predicate.IfNotNull())
{
var FlieldWhere = new FieldValueCollection();
string strwhere = Predicate.GetSql(FlieldWhere, qc);//拼接SQL语句
if (!strwhere.IsEmpty())
{
sql.AppendFormat(" and {0} ", strwhere);
foreach (string key in FlieldWhere.Keys)
{
strwhere = strwhere.Replace(key.ToString(), "'" + FlieldWhere[key].ToString() + "'");
}
sqlstr.AppendFormat(" and {0} ", strwhere);
}
}
qc.CommandText = sql.ToString();
qc.SqlString = sqlstr.ToString();
sqlstr = null; sql = null; WhereColumn = null; WhereColumnStr = null;
return qc;
}
#endregion
#region 解析 查询分页 SQL语句
///
/// 解析 Select SQL语句
///
///
private QueryCommand ParserQueryPageCommand()
{
List WhereColumn = new List();
List WhereColumnStr = new List();//条件列集合
QueryCommand qc = new QueryCommand() { DbParmChar = DbParmChar };
StringBuilder sql = new StringBuilder();
if (Md.FieldsColumns.IfNotNull())//查询条件
{
foreach (string key in Md.FieldsColumns.Keys)
{
var field = Md.FieldsColumns[key];
if (!(field.Value.IsNull()))
{
if (!field.Value.ToString().IsEmpty())
{
string parmname = string.Format("@{0}_{1}", field.Name, qc.Parameters.Count);
WhereColumn.Add(string.Format(" [{0}].{1}=@{2} ", Md.FiledMeta.Table.Name, field.Name,
parmname));
qc.Parameters.Add("@" + parmname, (DbType)AntUtils.TryGetDbType(field.Type), field.Value);
WhereColumnStr.Add(string.Format(" [{0}].{1}='{2}' ", Md.FiledMeta.Table.Name, field.Name, field.Value));
}
}
}
}
sql.AppendFormat(" select {0} ", "*");
sql.AppendFormat(" from ( select top {0} {1} ,ROW_Number() OVER ( order by [{2}].{3} ) AS r", PageNo * PageSize, FieldColumn(), Md.FiledMeta.Table.Name, "");
sql.AppendFormat(" FROM [{0}] with(nolock) WHERE 1=1 ", Md.FiledMeta.Table.Name);
if (WhereColumn.Count > 0) sql.AppendFormat(" and {0}", string.Join(" AND ", WhereColumn.ToArray()));
//if (Predicate.IfNotNull())
//{
// string strwhere = Predicate.GetSql(Md, qc);//拼接SQL语句
// sql.AppendFormat(" and {0}", strwhere);
//}
if (Predicate.IfNotNull())
{
var FlieldWhere = new FieldValueCollection();
string strwhere = Predicate.GetSql(FlieldWhere, qc);//拼接SQL语句
if (!strwhere.IsEmpty())
{
sql.AppendFormat(" and {0} ", strwhere);
//foreach (string key in FlieldWhere.Keys)
//{
// strwhere = strwhere.Replace(key.ToString(), "'" + FlieldWhere[key].ToString() + "'");
//}
//sqlstr.AppendFormat(" and {0} ", strwhere);
}
}
if (Md.WhereSql.Length > 0) sql.AppendFormat(" {0}", Md.WhereSql);
sql.AppendFormat(" ) A where A.r BETWEEN '{0}' AND '{1}'", (((PageNo - 1) * PageSize) + 1), (PageNo * PageSize));
if (!qc.SqlNotes.IsNull())
qc.CommandText = sql.ToString();
else
qc.CommandText = sql.ToString();
string sqlstr = sql.ToString();
qc.SqlString = sqlstr;
return qc;
}
#endregion
///
/// 获取显示字段列
///
///
private string FieldColumn()
{
List columns = new List();
string fieldcolumn = string.Empty;
if (!ShowField.IsEmpty())
{
fieldcolumn = ShowField;
}
else
{
foreach (MemberInfo df in Md.FiledMeta.MemberColumnMap.Keys)//显示字段
{
columns.Add(string.Format("{0}", "[" + Md.FiledMeta.Table.Name + "]." + df.Name));
}
fieldcolumn = string.Join(",", columns.ToArray());
}
fieldcolumn = fieldcolumn.IsEmpty() ? " * " : fieldcolumn;
return fieldcolumn;
}
private QueryCommand ParserRightQueryCommand()
{
List columns = new List(); List WhereColumn = new List();
QueryCommand qc = new QueryCommand();
StringBuilder sql = new StringBuilder();
return qc;
}
///
/// 通配符转换
///
///
///
protected static string GetEscape(string str)
{
return str.Replace("!", "!!").Replace("%", "!%").Replace("_", "!_");
}
///
/// 判断是否有记录
///
///
private bool IsMdValuesCount()
{
//if (!Object.Equals(Md.Values, null) && !Object.Equals(Md.Values, DBNull.Value))
//{
// if (Md.Values.Count > 0)
// return true;
//}
return false;
}
///
/// 判断是否有值
///
///
///
private bool IsFieldValue(FieldValueCollection fieldvalue)
{
if (!Object.Equals(fieldvalue, null) && !Object.Equals(fieldvalue, DBNull.Value))
{
if (fieldvalue.Count > 0)
{
return true;
}
}
return false;
}
///
/// 获取默认值
///
///
///
private object SetDefaultValue(DbType ColumnType)
{
object value = null;
switch (ColumnType)
{
case DbType.String:
{
value = "";
}
break;
case DbType.Boolean:
{
value = false;
}
break;
case DbType.Decimal:
case DbType.Double:
case DbType.Int32:
case DbType.Int16:
case DbType.Int64:
{
value = 0;
}
break;
case DbType.DateTime:
{
value = DateTime.Now;
}
break;
}
//if (Md.FieldMeteDatas[key].ColumnType == DbType.String)
// value = "";
//if (Md.FieldMeteDatas[key].ColumnType == DbType.Boolean)
// value = false;
//if (Md.FieldMeteDatas[key].ColumnType == DbType.Decimal || Md.FieldMeteDatas[key].ColumnType == DbType.Double)
// value = 0;
//if (Md.FieldMeteDatas[key].ColumnType == DbType.Int32)
// value = 0;
//if (Md.FieldMeteDatas[key].ColumnType == DbType.Int16)
// value = 0;
//if (Md.FieldMeteDatas[key].ColumnType == DbType.Int64)
// value = 0;
//if (Md.FieldMeteDatas[key].ColumnType == DbType.DateTime)
// value = DateTime.Now;
//if (Md.FieldMeteDatas[key].ColumnType == DbType.Guid)
// value = Guid.NewGuid();
return value;
}
}
}