博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
EntityFramework之创建数据库及基本操作(一)
阅读量:6217 次
发布时间:2019-06-21

本文共 1941 字,大约阅读时间需要 6 分钟。

那时学EF的时候还没有Code First,只有DB First,生成的是一个EDMX文件,Code First则没有这文件,下面直接上代码吧

数据库创建以及建表

1、首先我们新建一个新项目,使用Nuget搜索EntityFramework,如果想找到对应的中文包,可以搜索EntityFramework.zh-Hans即可。

     本人是话是直接搜索EntityFramework.zh-Hans,这样会自动把中文包和类库一起安装,比较方便。

 

2、接着建model实体

1     public class Product2     {3         public int Id { get; set; }4         public string Name { get; set; }5         public string Description { get; set; }6     }

 3、创建一个EntityContext并继承自DbContext

1     public class EntityContext : DbContext 2     { 3         public EntityContext() 4             : base("name=DBConnectionString") 5         { 6  7         } 8  9         public DbSet
Product { get; set; }10 11 protected override void OnModelCreating(DbModelBuilder modelBuilder)12 {13 //不使用modelBuilder.Configurations.AddFromAssembly方法则需要逐个添加,如果数量多的话比较麻烦14 //modelBuilder.Configurations.Add(new OneToMany.Map.ProductMap());15 //此方法可以将当前程序集下所有继承了ComplexTypeConfiguration、EntityTypeConfiguration类型的类添加到注册器16 modelBuilder.Configurations.AddFromAssembly(Assembly.GetExecutingAssembly());17 base.OnModelCreating(modelBuilder);18 }19 }

 4、在web.config文件中添加数据库连接字符串

1 
2
3

 5、接着创建实体映射

1     public class ProductMap : EntityTypeConfiguration
2 { 3 public ProductMap() 4 { 5 ToTable("Product"); //指定表明 6 HasKey(p => p.Id); //指定主键 7 //指定Name字段在数据库中列名为DBName、长度500、非空,其他的话可以自己试下 8 Property(p => p.Name).HasColumnName("DBName").HasMaxLength(500).IsRequired(); 9 }10 }

 6、我们写一个新增实体的操作,让Code First生成数据库

1     EntityContext db = new EntityContext();2     var product = new Models.Product() { Name = "电磁炉", Description = "电器" };3     db.Set
().Add(product);4 db.SaveChanges();

我们打开数据库管理工具看下是否有创建数据库以及新增数据

 

 

这样几步操作就完成了一个基本的例子,往后文章将介绍下一对一、一对多、多对多关系代码如何编写,以及数据库迁移操作。

 
 
 

转载地址:http://ugoja.baihongyu.com/

你可能感兴趣的文章
【Spark Summit EU 2016】在Spark集群中内置Elasticsearch
查看>>
linux epoll浅析
查看>>
Android+struts2+json方式模拟手机登录功能
查看>>
【云栖神侠传】洞悉分毫,决策千里!看阿里神侠的海量日志处理秘籍
查看>>
清除eclipse当前登录的SVN账户
查看>>
委托的创建、实例化和调用
查看>>
MySQL 5.7.5: 新语法WAIT_FOR_EXECUTED_GTID_SET 及存在的问题
查看>>
nodejs上HTML分析利器node-jquery
查看>>
Angular-Bootstrap和Compiler
查看>>
植入式攻击入侵检测解决方案
查看>>
Ubuntu 14.04下安装Golang以及LiteIDE
查看>>
Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)
查看>>
批量生成 htpasswd 密码
查看>>
Tiny代码生成框架
查看>>
大型网站技术架构之秒杀系统架构设计
查看>>
AOP的另一种实现----cglib
查看>>
一、大型网站技术架构演化
查看>>
NVIDIA Jetson TK1学习与开发(十):人脸检测(Face Detection)
查看>>
C++中的树、二叉树、二叉树遍历、二叉树前序、中序、后序遍历相互求法
查看>>
cms查询系统(二)json形式参数的设计与解析
查看>>