[AttributeUsage(AttributeTargets.All)]
public sealed class NameAttribute : Attribute
{
private readonly string _name;
public string Name
{
get { return _name; }
}
public NameAttribute(string name)
{
_name = name;
}
}
[Description("Student Information")]
[Name("RoomDeepGroup")]
public class RoomDeepGroup
{
/// <summary>
/// 主键
/// </summary>
[Name("ID")]
public Int64 ID { get; set; }
/// <summary>
/// 房间地面组的唯一标识符
/// </summary>
public string RoomDeepID { get; set; }
/// <summary>
/// 外键
/// </summary>
public Int64 RoomGroupID { get; set; }
/// <summary>
/// 组内包含的构建id集合
/// </summary>
public string ElementIDs { get; set; }
/// <summary>
/// 做法id
/// </summary>
public Int64 WorkMethodID { get; set; }
/// <summary>
/// 房间轮廓点
/// </summary>
public string RoomOutline { get; set; }
/// <summary>
/// 起铺点的参考轮廓点
/// </summary>
public string RefOutLinePt { get; set; }
/// <summary>
/// 起铺点相对于参考轮廓点的偏移向量
/// </summary>
public string StartPoint { get; set; }
/// <summary>
/// 瓷砖长度
/// </summary>
public double TileLength { get; set; }
/// <summary>
/// 瓷砖宽度
/// </summary>
public double TileHeight { get; set; }
/// <summary>
/// 铺设角度
/// </summary>
public double TileAngel { get; set; }
public string TileStyle { get; set; }
/// <summary>
/// 瓷砖铺设间隙
/// </summary>
public double TileGap { get; set; }
}
public static int Add(T entity)
{
//保存字段名
string st = string.Empty;
//保存值
string sv = string.Empty;
//获取表名
string Name = typeof(T).Name;
//根据实例获取属性和值
Type type = entity.GetType();
List<SQLiteParameter> sqlParameters = new List<SQLiteParameter>();
foreach (var item in type.GetProperties())
{
//检索指定类型用于特定成员的自定义属性
NameAttribute attribute = item.GetCustomAttributes(typeof(NameAttribute), false).FirstOrDefault() as NameAttribute;
if (attribute == null)
{
//获取属性名,拼接字段
if (!string.IsNullOrEmpty(st))
{
st += ",";
}
st += item.Name;
if (!string.IsNullOrEmpty(sv))
{
sv += ",";
}
sv += ("@" + item.Name);
sqlParameters.Add(new SQLiteParameter("@" + item.Name, item.GetValue(entity)));
}
}
string sql = string.Format("insert into {0} ({1}) values({2})", Name, st, sv);
return DbHelperSQLite.ExecuteNonQuery(sql, sqlParameters.ToArray());
}