EF code first 怎样创建数据库视图

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EF code first 怎样创建数据库视图相关的知识,希望对你有一定的参考价值。

参考技术A 1. 使用CodeFirst方式创建数据库
我们新建一个控制台项目,项目中添加两个Model:Author和Blog以及DbContext。 DbContext的添加方式如下:
项目上右键->添加->新建项->ADO.NET Entity Data Model->Empty Code First model
项目代码如下:

1 //默认生成的数据表名为类名+字母s,这里使用TableAttribute来指定数据表名为T_Authors
2 [Table("T_Authors")]
3 public class Author
4
5 public int Id set; get;
6 public string Name set; get;
7 /*
8 此处定义了Blog类型的属性,所以要确保Blog类中至少要有一个表示主键的字段,即public int Id set; get; 。
      否则在生成数据表时会报错:"EntityType 'Blog' has no key defined. Define the key for this EntityType.
9     Blogs: EntityType: EntitySet 'Blogs' is based on type 'Blog' that has no keys defined."
10     */
11 public virtual ICollection<Blog> Blogs set; get;
12
13
14 [Table("T_Blogs")]
15 public class Blog
16
17 public int Id set; get;
18 public string Title set; get;
19 public DateTime Time set; get;
20 public int AuthorId set; get;
21 public virtual Author Author set; get;
22
23
24 public class MyDbContext: DbContext
25
26 public MyDbContext()
27 : base("name=MyDbContext")
28
29
30 //DbContext会根据配置文件中connectionStrings指定的数据库名称来建立数据库
31 //DbContext根据DbSet属性的类型来创建数据表,这里指定了Author类型的属性,所以会生成T_Authors数据表
32 public virtual DbSet<Author> Authors set; get;
33

CodeFirst方式会根据配置文件中的配置生成数据库,这里小编使用的是MYSQL数据库,配置文件如下:

1 <!--EF for MYSQL-->
2  <entityFramework codeConfigurationType="MySql.Data.Entity.MySqlEFConfiguration, MySql.Data.Entity.EF6">
3 <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
4 <providers>
5 <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
6 </providers>
7 </entityFramework>
8 <connectionStrings>
9 <add name="MyDbContext" connectionString="server=localhost;port=3306;database=EF;uid=root;password=root" providerName="System.Data.MySqlClient" />
10 </connectionStrings>

PS:小编使用的是EF6和MYSQL数据库,所以要在项目中添加对Mysql.Data.Entity.EF6以及EntityFrameword 6.0的引用。
到此,我们已经完成生成数据库的工作,接下来在Main方法中写两行代码:
1 using (var db = new ManagerDb())
2
3 db.Authors.Add(new Author() Name = "xfh" );
4 db.SaveChanges();
5

以上是关于EF code first 怎样创建数据库视图的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 EF Code-First 插入/更新可更新视图

使用 EF6 Code First 的 MySQL 现有数据库 - 使用脚手架创建控制器会导致错误

EF之Code First代码优先

EF Code First创建数据库

EF Oracle Code First踩过的坑

EF中三大开发模式之DB First,Model First,Code First以及在Production Environment中的抉择