在具体数据库操作之前,我们先准备好四张表以及相对应数据库操作模型: 学生表,年级表,班级表,学分表。示例数据库表,如下代码(MSSQL 为例)

--学生表
CREATE TABLE t_student
(
FID INT IDENTITY(1,1) PRIMARY KEY, --主键
FName VARCHAR(100), --名称
FAage INT,--年龄
FClassId INT, --班级Id
FAddTime DATETIME DEFAULT GETDATE()
) --学分表
CREATE TABLE t_StudentScore
(
FID INT IDENTITY(1,1) PRIMARY KEY, --主键
FStudentId INT, --学生
FScore INT, --分数
FAddTime DATETIME DEFAULT GETDATE()
) --班级表
CREATE TABLE t_class
(
FID INT IDENTITY(1,1) PRIMARY KEY, --主键
FName VARCHAR(100), --班级名称
FGradeId INT, --年级
FAddTime DATETIME DEFAULT GETDATE(),
) --年级表
CREATE TABLE t_Grade
(
FID INT IDENTITY(1,1) PRIMARY KEY,--主键
FName VARCHAR(100),--年级名称
FAddTime DATETIME DEFAULT GETDATE(),
)

创建对应的 BTORM 数据库模型

备注NOTIC:

  • BTORM 数据库模型必须继承自  Bitter 框架中的 BaseModel 类。
  • 模型必须导入命名空间:BT.Manage.Core 和 BT.Manage.Tools.Attributes。
  • 字段建议加上 virtual  属性如:  public virtual Int32? FStudentId { get; set; }      高级功能中--字段变更收集器中会用到 --- 此条为非必要,建议加上 virtual 属性
  • 模型必须有自增长主键,并且主键类型为int identity 类型 与EF 类似,主键上必须写上字段属性[Key] 和 [Identity] 属性,Bitter orm 框架才能识别此字段为主键并且是自增长
  • 模型必须指定物理表名:在模型类名上打上类标签属性: [TableName("tablename")]
  • 模型中 第一个字符 为 ‘_’的字段,BTORM 认为此此段不是数据库的映射字段。如下面学生 学生表-model 中的 _notDataBaseFiled  字段。

学生表-model:

[TableName("t_student")]
public class TStudentInfo : BaseModel
{
/// <summary>
/// 主键
/// </summary>
[Key]
[Identity]
[Display(Name = @"主键")]
public virtual Int32 FID { get; set; } /// <summary>
/// 姓名
/// </summary>
[Display(Name = @"姓名")]
public virtual String FName { get; set; } /// <summary>
/// 年龄
/// </summary>
[Display(Name = @"年龄")]
public virtual Int32? FAage { get; set; } /// <summary>
/// 班级
/// </summary>
[Display(Name = @"班级")]
public virtual Int32? FClassId { get; set; } /// <summary>
/// 插入时间
/// </summary>
[Display(Name = @"插入时间")]
public virtual DateTime? FAddTime { get; set; } /// <summary>
/// 此为非数据库字段
/// </summary>
public virtual String _notDataBaseFiled { get { return this.FName+this.FAage; }} //此字段为非数据库字段,虽然此字段存在数据库模型中,但是此字名称 第一个字符为下划线 ’_’, BTORM 在执行过程中,不会映射到数据库层面.
}

学分表-model:

[TableName("t_StudentScore")]
public class TStudentScoreInfo : BaseModel
{
/// <summary>
/// 主键
/// </summary>
[Key]
[Identity]
[Display(Name = @"主键")]
public virtual Int32 FID { get; set; } /// <summary>
///
/// </summary>
[Display(Name = @"学生Id")]
public virtual Int32? FStudentId { get; set; } /// <summary>
///
/// </summary>
[Display(Name = @"学分")]
public virtual Int32? FScore { get; set; } /// <summary>
/// 插入时间
/// </summary>
[Display(Name = @"插入时间")]
public virtual DateTime? FAddTime { get; set; } }

年级表-model:

[TableName("t_Grade")]
public class TGRADEInfo : BaseModel
{
/// <summary>
/// 主键
/// </summary>
[Key]
[Identity]
[Display(Name = @"主键")]
public virtual Int32 FID { get; set; } /// <summary>
/// 年级名称
/// </summary>
[Display(Name = @"年级名称")]
public virtual String FName { get; set; } /// <summary>
/// 插入时间
/// </summary>
[Display(Name = @"插入时间")]
public virtual DateTime? FAddTime { get; set; }


}

班级-model:

[TableName("t_class")]
public class TClassInfo : BaseModel
{
/// <summary>
/// 主键
/// </summary>
[Key]
[Identity]
[Display(Name = @"主键")]
public virtual Int32 FID { get; set; } /// <summary>
/// 班级名称
/// </summary>
[Display(Name = @"班级名称")]
public virtual String FName { get; set; } /// <summary>
/// 年级Id
/// </summary>
[Display(Name = @"年级Id")]
public virtual Int32? FGradeId { get; set; } /// <summary>
/// 插入时间
/// </summary>
[Display(Name = @"插入时间")]
public virtual DateTime? FAddTime { get; set; } }

最新文章

  1. C语言学习 第四次作业总结
  2. 16-网易-intership
  3. Oracel查询根据部分字段去重复
  4. HDU5402 暴力模拟
  5. 自己用C语言写dsPIC / PIC24 serial bootloader
  6. [每日菜单]lunch menu for Wednesday, February 24 2016
  7. construction of tuples containing 0 or 1 items
  8. Android应用开发--MP3音乐播放器代码实现(一)
  9. 拿nodejs快速搭建简单Oauth认证和restful API server攻略
  10. Ext.form.ComboBox 后台取值 动态加载 ext5.0.0
  11. KMP入门题目[不定期更新]
  12. Struts2输入校验
  13. HTML5 离线缓存忽略主页实例
  14. Qt之开机自启动
  15. Vue公司项目实战步骤
  16. EF ++属性会更新实体
  17. suse下修改主机名
  18. javascript 面向对象之路.2 - 小蜜蜂
  19. python删除文件与目录的方法
  20. Delphi调用JAVA的WebService上传XML文件(XE10.2+WIN764)

热门文章

  1. [UWP] - 用Json格式来发送一个Post请求到WCF服务
  2. python序列(二)列表的删除操作
  3. 6.自定义view-侧边字母导航LetterNavigationBar
  4. oracle 19c dataguard silent install (oracle 19c dataguard 静默安装)
  5. 使用freetype来显示中文汉字和英文字符
  6. Mysql 实战关于date,datetime,timestamp类型使用
  7. 第八章节 BJROBOT hector 算法构建地图【ROS全开源阿克曼转向智能网联无人驾驶车】
  8. 辅助调用函数【call,apply,bind】
  9. String、StringBuffer 和 StringBuilder 的区别
  10. Linux设置系统时区