步骤一、建立扩展属性类
实体类扩展属性要继承Attribute基类完成
步骤二、创建实体类并引用扩展实体类属性
Attributes属性定义,主要标明表名和主键名字
/// <summary>
/// 表名
/// </summary>
[AttributeUsage(AttributeTargets.Class)]
[System.Serializable]
public class TableNameAttribute : Attribute
{
public object _value { get; private set; }
public TableNameAttribute(string tableName)
{
this._value = tableName;
}
}
/// <summary>
/// 主键名
/// </summary>
[AttributeUsage(AttributeTargets.Class)]
[System.Serializable]
public class PrimaryKeyAttribute : Attribute
{
public object _value { get; private set; }
public PrimaryKeyAttribute(string primaryKey)
{
this._value = primaryKey;
}
}
// 使用方式(例)
/// <summary>
/// 学生类
/// </summary>
[TableName("MapRecord")]
[PrimaryKey("ID")]
public class Student
{
// 身份ID
public int Id { get; set; }
// 名字
public string Name { get; set; }
// 长度
public long Length { get; set; }
}
1 [AttributeUsage(AttributeTargets.Property)]
2 public class FieldAttribute : Attribute
3 {
4 /// <summary>
5 ///是否为主键(true/false)
6 /// </summary>
7 public bool PropertyKey { get; set; }
8 /// <summary>
9 /// 是否为自动增长(true/false)
10 /// </summary>
11 public bool Identity { get; set; }
12 }
1 [AttributeUsage(AttributeTargets.Class)]
2 public class TableAttribute:Attribute
3 {
4 /// <summary>
5 /// 数据库表名
6 /// </summary>
7 public string TableName { get; set; }
8 }
[Table(TableName = "emesc.Dome")]
2 [Serializable]
3 public class Dome
4 {
5 [Field(PropertyKey = true)]
6 public string EMP_NO { get; set; }
7 public string EMP_NAME { get; set; }
8 public string EMP_DESC { get; set; }
9 public string TYPE { get; set; }
10 public string EMP_RANK { get; set; }
11 public string EMP_PASS { get; set; }
12 public object FACTORY_CODE { get; set; }
13 public DateTime QUIT_DATE { get; set; }
14 public object CALENDAR_CODE { get; set; }
15 }
/// <summary>
/// 主键特性(在实体类的上方加这个特性,指定该类的主键名称)
/// </summary>
[AttributeUsage(AttributeTargets.Class)]
public class PrimaryKeyAttribute : Attribute
{
private PrimaryKeyAttribute()
{
}
private string _name;
/// <summary>
/// 构造方法
/// </summary>
/// <param name="name"></param>
public PrimaryKeyAttribute(string name)
{
_name = name;
}
/// <summary>
/// 主键名称
/// </summary>
public string Name
{
get { return _name; }
}
}







![[ROS 系列学习教程] 建模与仿真 - ros_control 介绍](https://img-blog.csdnimg.cn/direct/6a660cbd03c74215b6d4c0a3e6c5ced4.png#pic_center)











