前言
之前有学过EF一段时间那时EF才4.0似乎还不太稳定,而现在EF都已7.0版本,同时AspNet Identity都与此大有关联,看来是大势所趋于是开始学习EF,在学EF过程中也遇到一些小问题,特此录下,以备忘!
数据库和表基本创建
为了更好的循序渐进稍微概括下典型创建EF Code First过程(看之即懂,懂即略过)
第一步先定义两个类,如下:
public classStudent
{publicStudent()
{
}public int StudentID { get; set; }public string StudentName { get; set; }
}public classStandard
{publicStandard()
{
}public int StandardId { get; set; }public string StandardName { get; set; }
}
第二步:继承EF上下文DbContext
public classSchoolContext : DbContext
{
public SchoolContext():base("name=DBConnectionString"){
}public DbSet Students { get; set; }public DbSet Standards { get; set; }protected override voidOnModelCreating(DbModelBuilder modelBuilder)
{base.OnModelCreating(modelBuilder);
}
}
学生上下文中构造函数中的name去读取如下配置文件来命名数据库名称: DBByConnectionString
然后在控制台中通过EF上下文添加数据并保存,如下:
using (var ctx = newSchoolContext())
{
Student stud= new Student() { StudentName = "New Student"};
ctx.Students.Add(stud);
ctx.SaveChanges();
}
最终生成数据库以及表如下图:
上述创建数据库的过程只需注意:可以手动通过添加构造函数的name来命名数据库名称或者无需添加name那么生成的数据库名称是以上下文中的命名空间+上下文类来命名数据库名称。
数据库创建以及表一劳永逸配置
下面创建方法是看过园友hystar(EF教程)而写的,确实是好方法,就搬过来了,为什么说一劳永逸呢?不明白的话,可以去看看他的文章!首先添加两个类Student(学生类)和Course(课程类)。
public classStudent
{public int ID { get; set; }public string Name { get; set