小白学习做项目(1)_使用EntityFramework实现Code First设计数据库(1)

   这是我技术小白第一次写博客,内心真实上下(忐忑)不安啊。

在这里我不在讨论Code First和Database First的孰优孰劣(其实我也说不出个所以然来)。我只觉得,应该根据项目的规模、业务复杂度以及以及公司技术人员的水平来选择合适的技术。

书归正传,我先给出我参考的文章地址:

园子中刘兄的学习笔记

微软的MSDN

我的demo是一个微小的blog:

无论什么网站肯定会有用户,既然如此我们就先创建用户表

    public class User
    {
        public int UserID { get; set; }
        public string Nick { get; set; }
        public string Address { get; set; }
        public string LoginName { get; set; }
        public string Password { get; set; }
        public string PhoneNumber { get; set; }
        public string Email { get; set; }
    }
User

 表已经创建完成了,我们如何映射到数据库呢?

很显然,我们要利用EntityFramework这个ORM框架来实现

首先创建EntityFramework上下文BlogContext继承于

    public class BlogContext : DbContext
    {
        public BlogContext()
            : base("name=Blog")
        { }
        public DbSet<User> Users { get; set; }
    }
BlogContext

BlogContext构造函数继承父类base("name=Blog")方法是用来配置数据库连接字符串的,想必大家不陌生,忘记的同学可以参考此百度连接:

http://jingyan.baidu.com/article/948f5924352f06d80ff5f9e8.html(其实我也忘记了(-__-)b)

接下来在测试项目中添加数据运行new BlogContext().SaveChanges();即可。

    [TestClass]
    public class Test
    {
        [TestMethod]
        public void MyTest()
        {
            var blogContext = new BlogContext();
            var user = new User() { UserID = 1, LoginName = "53523113", Password = "53523113" };
            blogContext.Users.Add(user);
            var rr = blogContext.SaveChanges();
            //new BlogContext().SaveChanges()
        }
    }
Test

在这里我们要了解一下Entity Framework Code First中的映射习惯

1. 数据库映射:Code First 映射到数据库的名称由连接字符串中(Initial Catalog=XYY.Blog)来管理。

2.表映射:Code First 默认会按照类型名复数建立数据表,比如说User类对应的表名就叫Users,后边会介绍如何改变默认的表名。

3.列映射:Code First 默认会按照类中的属性名建立column,它还有默认的数据类型映射习惯,int会映射为int,string会映射为nvarchar(max),decimal会映射为decimal(18,2)。后边会介绍如何更改column的名称,类型以及其他特性。

4.主键映射:Code First 默认会在类的属性中需找名字为Id或类型名称+Id的int类型的属性作为主键,并且是自增字段。当然这些也是可以改的。

     今天就到这里吧,我们下期再见

原文地址:https://www.cnblogs.com/zk3113/p/4927522.html