下面我把我的生成规范告诉一下大家
2、表名映射:
语法:TableMap(表名,主键字段名) ,实体类必须加[Serializable]才能进行序列化实体类。
例:
//订单
[TableMap("OrderT", "ID")]
[Serializable]
public class Order
{
}
3、字段映射:
A、通用映射:
语法:[ColumnMap(字段名, 数据类型)] 例:
private Guid m_OrderID;
[ColumnMap("ID", DbType.Guid)]
public Guid ID
{
get { return m_OrderID; }
set { m_OrderID = value; }
}
B、递增映射:
语法:[AutoIncrease(增长数)]
字段映射同A,例:
[ColumnMap("ID", DbType.Int32)]
[AutoIncrease(1)]
public int ID
{
get { return m_ID; }
set { m_ID = value; }
}
C、引用映射:
语法:[ReferenceObject(typeof(类全名), "引用类实体主键", "映射到当前实体的字段名”)]
字段映射同A
例:
[ReferenceObject(typeof(OrderType), "ID", "TypeID")]
[ColumnMap("TypeID", DbType.String)]
public OrderType OrderType
{
get { return m_OrderType; }
set { m_OrderType = value; }
}
}
4、主子表关系映射:
语法:[SubObject(typeof(关系子实体), "关系子实体的主键", "映射到当前实体的外键字段名")]
例:
[SubObject(typeof(OrderDetail), "ID", "OrderID")]
public List<OrderDetail> Details
{
get { return m_Details; }
set { m_Details = value; }
}
5、完整示例:
[TableMap("OrderType", "ID")]
[Serializable]
public class OrderType
{
private int m_ID;
private string m_Name; public OrderType() { }
public OrderType(int id, string name)
{
m_ID = id;
m_Name = name;
} [ColumnMap("ID", DbType.Int32)]
public int ID
{
get { return m_ID; }
set { m_ID = value; }
} [ColumnMap("Name", DbType.String)]
public string Name
{
get { return m_Name; }
set { m_Name = value; }
}
} //订单
[TableMap("OrderT", "ID")]
[Serializable]
public class Order
{
private Guid m_OrderID;
private OrderType m_OrderType;
private string m_Title;
private DateTime m_AddTime;
private bool m_IsSigned;
private List<OrderDetail> m_Details; [ColumnMap("ID", DbType.Guid)]
public Guid ID
{
get { return m_OrderID; }
set { m_OrderID = value; }
} [ReferenceObject(typeof(OrderType), "ID", "TypeID")]
[ColumnMap("TypeID", DbType.String)]
public OrderType OrderType
{
get { return m_OrderType; }
set { m_OrderType = value; }
} [ColumnMap("Title", DbType.String)]
public string Title
{
get { return m_Title; }
set { m_Title = value; }
} [ColumnMap("AddTime", DbType.DateTime)]
public DateTime AddTime
{
get { return m_AddTime; }
set { m_AddTime = value; }
} [ColumnMap("IsDigned", DbType.Boolean)]
public bool IsDigned
{
get { return m_IsSigned; }
set { m_IsSigned = value; }
} [SubObject(typeof(OrderDetail), "ID", "OrderID")]
public List<OrderDetail> Details
{
get { return m_Details; }
set { m_Details = value; }
}
}
//订单明细
[TableMap("OrderDetail", "DetailID")]
[Serializable]
public class OrderDetail
{
private Guid m_DetailID;
private Guid m_OrderID;
private int m_ProductID;
private int m_Amount; [ColumnMap("DetailID", DbType.Guid)]
public Guid DetailID
{
get { return m_DetailID; }
set { m_DetailID = value; }
} [ColumnMap("OrderID", DbType.Guid)]
public Guid OrderID
{
get { return m_OrderID; }
set { m_OrderID = value; }
} [ColumnMap("ProductID", DbType.Int32)]
public int ProductID
{
get { return m_ProductID; }
set { m_ProductID = value; }
} [ColumnMap("Amount", DbType.Int32)]
public int Amount
{
get { return m_Amount; }
set { m_Amount = value; }
}
}
2、表名映射:
语法:TableMap(表名,主键字段名) ,实体类必须加[Serializable]才能进行序列化实体类。
例:
//订单
[TableMap("OrderT", "ID")]
[Serializable]
public class Order
{
}
3、字段映射:
A、通用映射:
语法:[ColumnMap(字段名, 数据类型)] 例:
private Guid m_OrderID;
[ColumnMap("ID", DbType.Guid)]
public Guid ID
{
get { return m_OrderID; }
set { m_OrderID = value; }
}
B、递增映射:
语法:[AutoIncrease(增长数)]
字段映射同A,例:
[ColumnMap("ID", DbType.Int32)]
[AutoIncrease(1)]
public int ID
{
get { return m_ID; }
set { m_ID = value; }
}
C、引用映射:
语法:[ReferenceObject(typeof(类全名), "引用类实体主键", "映射到当前实体的字段名”)]
字段映射同A
例:
[ReferenceObject(typeof(OrderType), "ID", "TypeID")]
[ColumnMap("TypeID", DbType.String)]
public OrderType OrderType
{
get { return m_OrderType; }
set { m_OrderType = value; }
}
}
4、主子表关系映射:
语法:[SubObject(typeof(关系子实体), "关系子实体的主键", "映射到当前实体的外键字段名")]
例:
[SubObject(typeof(OrderDetail), "ID", "OrderID")]
public List<OrderDetail> Details
{
get { return m_Details; }
set { m_Details = value; }
}
5、完整示例:
[TableMap("OrderType", "ID")]
[Serializable]
public class OrderType
{
private int m_ID;
private string m_Name; public OrderType() { }
public OrderType(int id, string name)
{
m_ID = id;
m_Name = name;
} [ColumnMap("ID", DbType.Int32)]
public int ID
{
get { return m_ID; }
set { m_ID = value; }
} [ColumnMap("Name", DbType.String)]
public string Name
{
get { return m_Name; }
set { m_Name = value; }
}
} //订单
[TableMap("OrderT", "ID")]
[Serializable]
public class Order
{
private Guid m_OrderID;
private OrderType m_OrderType;
private string m_Title;
private DateTime m_AddTime;
private bool m_IsSigned;
private List<OrderDetail> m_Details; [ColumnMap("ID", DbType.Guid)]
public Guid ID
{
get { return m_OrderID; }
set { m_OrderID = value; }
} [ReferenceObject(typeof(OrderType), "ID", "TypeID")]
[ColumnMap("TypeID", DbType.String)]
public OrderType OrderType
{
get { return m_OrderType; }
set { m_OrderType = value; }
} [ColumnMap("Title", DbType.String)]
public string Title
{
get { return m_Title; }
set { m_Title = value; }
} [ColumnMap("AddTime", DbType.DateTime)]
public DateTime AddTime
{
get { return m_AddTime; }
set { m_AddTime = value; }
} [ColumnMap("IsDigned", DbType.Boolean)]
public bool IsDigned
{
get { return m_IsSigned; }
set { m_IsSigned = value; }
} [SubObject(typeof(OrderDetail), "ID", "OrderID")]
public List<OrderDetail> Details
{
get { return m_Details; }
set { m_Details = value; }
}
}
//订单明细
[TableMap("OrderDetail", "DetailID")]
[Serializable]
public class OrderDetail
{
private Guid m_DetailID;
private Guid m_OrderID;
private int m_ProductID;
private int m_Amount; [ColumnMap("DetailID", DbType.Guid)]
public Guid DetailID
{
get { return m_DetailID; }
set { m_DetailID = value; }
} [ColumnMap("OrderID", DbType.Guid)]
public Guid OrderID
{
get { return m_OrderID; }
set { m_OrderID = value; }
} [ColumnMap("ProductID", DbType.Int32)]
public int ProductID
{
get { return m_ProductID; }
set { m_ProductID = value; }
} [ColumnMap("Amount", DbType.Int32)]
public int Amount
{
get { return m_Amount; }
set { m_Amount = value; }
}
}
解决方案 »
- 怎么将label的值转化成datetime型的
- 上传文件问题。
- 请问怎么读取gridview中不可见的数据?
- 如何获取上一个页面的url
- Server Application Unavailable问题!!!
- 请问在什么情况下客户端代码中会出现_doPostback()函数,请解释一下。
- 使用form认证时Session过期问题
- 一个小问题----CheckBoxList全选问题
- 如何在页面上实现控件的拖拉,相当于一个简单的网页编辑器
- 如何动态更改aspx的标题
- 请教,在方法里面不可以workid='"+e.Item.Cells[1].Text+"' 用这样的格式吗?谢谢
- 能用System.IO.File.Delete 借助通配符删除文件名相似的文件?
以前用CodeSmith,后来不用了~
他的模板也基本上和编程差不多,而且还提供了对数据库的引用。