3.2.1 创建数据模型

      ASP.NET MVC4与Entity Framework 5同时上市,尤其强化了程序代码优先开发模式的支持。如果想学习完整的Entity Framework相关技术,需要再参考其他相关技术书籍。     

      在ASP.NET MVC中创建模型,其实跟创建通用C#类型没有什么不同,代码如下:

public class Guestbook
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Email { get; set; }
    public string Message { get; set; }
    public DateTime CreatedOn { get; set; }
}

      如同第2章的案例一样,当Code First正确运行的情况下,这段程序会自动在数据库中创建起一个名为Guestbook的表格,其架构(Schema)如下图所示。

      首先,数据库表名字为模型类的复数。其次,属性名称会与数据库的字段名一样。再者,名称为Id的属性在数据库中创建完成后,也会被标识为主键与标识列(自动编号)。而在其他数据类型转换的过程中,也有些有趣的地方,如下表所示。

.NET类型 数据库类型 字段长度 允许Null 转换帮助
int int   NOT NULL
  • 由.NET的int类型转换成数据库的int类型很直观
  • 由于.NET的int类型属于值类型,原本就不允许Null信息,因此当转换到数据库后一样也不允许Null信息
string nvarchar MAX NULL
  • 因为.NET字符串处理都是Unicode编码,因此转换为数据库类型时默认也会用nvarchar,但因为string看不出字段需要多长,因此在数据库中的字段长度默认会设置为MAX
  • 由于.NET的string类型属于引用类型,原本就是允许Null信息,因此转换到数据库后一样也允许Null信息
DateTime datetime   NOT NULL
  • 由.NET的DateTime类型转换成数据库的datetime类型也很直观
  • 由于.NET的DateTime类型属于值类型,原本就允许Null信息,因此转换到数据库后一样也不允许Null信息

      我们采用EF支持的Code First开发方式时,了解ORM类型转换的过程,对开发人员来说非常重要,有助于未来对数据库进行效能调整。

posted @ 2015-09-24 14:04  RunningYY  阅读(585)  评论(0编辑  收藏  举报