这是我技术小白第一次写博客,内心真实上下(忐忑)不安啊。
在这里我不在讨论Code First和Database First的孰优孰劣(其实我也说不出个所以然来)。我只觉得,应该根据项目的规模、业务复杂度以及以及公司技术人员的水平来选择合适的技术。
书归正传,我先给出我参考的文章地址:
我的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; } }
表已经创建完成了,我们如何映射到数据库呢?
很显然,我们要利用EntityFramework这个ORM框架来实现
首先创建EntityFramework上下文BlogContext继承于
public class BlogContext : DbContext { public BlogContext() : base("name=Blog") { } public DbSet<User> Users { get; set; } }
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() } }
在这里我们要了解一下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类型的属性作为主键,并且是自增字段。当然这些也是可以改的。
今天就到这里吧,我们下期再见