EntityFramework之创建数据库及基本操作(一)
那时学EF的时候还没有Code First,只有DB First,生成的是一个EDMX文件,Code First则没有这文件,下面直接上代码吧
数据库创建以及建表
1、首先我们新建一个新项目,使用Nuget搜索EntityFramework,如果想找到对应的中文包,可以搜索EntityFramework.zh-Hans即可。
本人是话是直接搜索EntityFramework.zh-Hans,这样会自动把中文包和类库一起安装,比较方便。

2、接着建model实体
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}
3、创建一个EntityContext并继承自DbContext
public class EntityContext : DbContext
{
public EntityContext()
: base("name=DBConnectionString")
{ } public DbSet<Product> Product { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//不使用modelBuilder.Configurations.AddFromAssembly方法则需要逐个添加,如果数量多的话比较麻烦
//modelBuilder.Configurations.Add(new OneToMany.Map.ProductMap());
//此方法可以将当前程序集下所有继承了ComplexTypeConfiguration、EntityTypeConfiguration类型的类添加到注册器
modelBuilder.Configurations.AddFromAssembly(Assembly.GetExecutingAssembly());
base.OnModelCreating(modelBuilder);
}
}
4、在web.config文件中添加数据库连接字符串
<connectionStrings>
<add name="DBConnectionString" connectionString="Data Source=.;Initial Catalog=BasicOpt;Integrated Security=true" providerName="System.Data.SqlClient" />
</connectionStrings>
5、接着创建实体映射
public class ProductMap : EntityTypeConfiguration<Product>
{
public ProductMap()
{
ToTable("Product"); //指定表明
HasKey(p => p.Id); //指定主键
//指定Name字段在数据库中列名为DBName、长度500、非空,其他的话可以自己试下
Property(p => p.Name).HasColumnName("DBName").HasMaxLength().IsRequired();
}
}
6、我们写一个新增实体的操作,让Code First生成数据库
EntityContext db = new EntityContext();
var product = new Models.Product() { Name = "电磁炉", Description = "电器" };
db.Set<Product>().Add(product);
db.SaveChanges();
我们打开数据库管理工具看下是否有创建数据库以及新增数据


这样几步操作就完成了一个基本的例子,往后文章将介绍下一对一、一对多、多对多关系代码如何编写,以及数据库迁移操作。
EntityFramework之创建数据库及基本操作(一)的更多相关文章
- ASP.NET通过EntityFramework CodeFirst创建数据库
Number1 新建一个项目 给新项目添加一个实体数据模型 选择第三个 这里我创建两个有关系的类,也就是有外键关系的数据库表 using System; using System.Collection ...
- EntityFramework SQLiteCodeFirst 自动创建数据库 关闭级联删除
外键的级联删除: 如A表中有主键idA, B表中设置外键(ForeignKey)为A表中的主键idA, 当A表中的记录被删除时, B表中所有引用此条记录的记录(即所有外键为idA的记录)将自动被删除 ...
- 【第四章】MySQL数据库的基本操作:数据库、表的创建插入查看
MySQL数据库基本操作 创建表 create table 查看表结构 desc table, show create table 表完整性约束 修改表 alter table 复制表 create ...
- 大数据学习day26----hive01----1hive的简介 2 hive的安装(hive的两种连接方式,后台启动,标准输出,错误输出)3. 数据库的基本操作 4. 建表(内部表和外部表的创建以及应用场景,数据导入,学生、分数sql练习)5.分区表 6加载数据的方式
1. hive的简介(具体见文档) Hive是分析处理结构化数据的工具 本质:将hive sql转化成MapReduce程序或者spark程序 Hive处理的数据一般存储在HDFS上,其分析数据底 ...
- Mysql笔记【1】-数据库的基本操作(创建/删除)
1.创建数据库 创建数据库(如果存在,则报错) #创建名称为test的数据库 create database test 查询创建完的数据库 show databases 2.删除数据库 删除数据库(如 ...
- 网络编程-Mysql-1、数据库的启动关闭,创建数据库,表等基本操作
启动服务端:sudo service mysql start 关闭服务端:suodo service mysql stop 重启服务端:suodo service mysql restart 连接数据 ...
- mysql数据库的基本操作:创建数据库、查看数据库、修改数据库、删除数据库
本节相关: 创建数据库 查看数据库 修改数据库 删除数据库 首发时间:2018-02-13 20:47 修改: 2018-04-07:考虑到规范化,将所有语法中“关键字”变成大写;以及因为整理“mys ...
- EntityFramework使用Code First模式创建数据库控制生成单数形式的表名
使用Code-First模式生成数据库时,默认生成的数据库表的名称为类型的复数形式,例如实体类名称是"User",默认生成的数据库表名为“Users”,多数情况下我们并不想生成的数 ...
- MVC CodeFirst简单的创建数据库(非常详细的步骤)
最近在学习MVC的开发,相信有过开发经验的人初学一个新的框架时候的想法跟我一样最关心的就是这个框架如何架构,每个架构如何分工,以及最最关键的就是如何与数据库通信,再下来才是学习基础的页面设计啊等 ...
随机推荐
- Python学习(18)面向对象
目录 Python 面向对象 创建实例对象 Python内置类属性 Pyyhon对象销毁(垃圾回收) 类属性与方法 Python 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此 ...
- Mysql 命令行工具
1.Mysql命令行工具分为两类:服务端命令行工具和客户端命令行工具. 2.服务端工具 mysql_install_db:建库工具 mysqld_safe:Mysql服务的启动工具,mysqld_sa ...
- vim的配置文件及常用的快捷键
一些最简单的配置,即在.vimrc中可以写入的配置: 首先,说明一点,在.vimrc文件中,可以用“ 把一行的配置注销掉. set nocompatible “关闭 vi 兼容模式:其中 comp ...
- Java编程思想学习笔记_3(继承,内部类)
一.继承与清理 如果某个类需要去清理自身的资源,那么必须用心为其创建回收垃圾的方法,而如果此类有导出的子类,那么必须在导出类中覆盖回收的方法,当覆盖被继承类的回收垃圾的方法的时候,需要注意销毁的顺序应 ...
- 工作了3年的JAVA程序员应该具备什么技能?(zhuan)
http://www.500d.me/article/5441.html **************************************** 来源:五百丁 作者:LZ2016-03-18 ...
- OpenGL的glViewPort窗口设置函数实现分屏
之前实现过全景图片查看(OpenGL的几何变换3之内观察全景图),那么我们需要进行分屏该如何实现呢?如下图: 没错就是以前提过的glViewPort函数,废话不多说了,我直接上代码: //从这里开始进 ...
- C++ Primer 笔记(2)第二章 变量与基本类型
第二章 变量与基本类型 1.基本内置类型包括算术类型和空类型,算术类型分为两类:整型(包括字符和布尔类型)和浮点型: 2.布尔类型(bool)的取值是真(true)或者假(false): 3.字面值常 ...
- android浮动搜索框
android浮动搜索框的配置比较繁琐,需要配置好xml文件才能实现onSearchRequest()方法. 1.配置搜索的XML配置文件,新建文件searchable.xml,保存在res/xml ...
- 6/3 Sprint2 看板和燃尽图
- 实验二Step1-有序顺序表
#include<stdio.h> struct job { ];//作业名称 char status;//当前状态 int arrtime;//到达时间 int reqtime;//要求 ...