那时学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之创建数据库及基本操作(一)的更多相关文章

  1. ASP.NET通过EntityFramework CodeFirst创建数据库

    Number1 新建一个项目 给新项目添加一个实体数据模型 选择第三个 这里我创建两个有关系的类,也就是有外键关系的数据库表 using System; using System.Collection ...

  2. EntityFramework SQLiteCodeFirst 自动创建数据库 关闭级联删除

    外键的级联删除: 如A表中有主键idA, B表中设置外键(ForeignKey)为A表中的主键idA, 当A表中的记录被删除时, B表中所有引用此条记录的记录(即所有外键为idA的记录)将自动被删除 ...

  3. 【第四章】MySQL数据库的基本操作:数据库、表的创建插入查看

    MySQL数据库基本操作 创建表 create table 查看表结构 desc table, show create table 表完整性约束 修改表 alter table 复制表 create ...

  4. 大数据学习day26----hive01----1hive的简介 2 hive的安装(hive的两种连接方式,后台启动,标准输出,错误输出)3. 数据库的基本操作 4. 建表(内部表和外部表的创建以及应用场景,数据导入,学生、分数sql练习)5.分区表 6加载数据的方式

    1. hive的简介(具体见文档) Hive是分析处理结构化数据的工具   本质:将hive sql转化成MapReduce程序或者spark程序 Hive处理的数据一般存储在HDFS上,其分析数据底 ...

  5. Mysql笔记【1】-数据库的基本操作(创建/删除)

    1.创建数据库 创建数据库(如果存在,则报错) #创建名称为test的数据库 create database test 查询创建完的数据库 show databases 2.删除数据库 删除数据库(如 ...

  6. 网络编程-Mysql-1、数据库的启动关闭,创建数据库,表等基本操作

    启动服务端:sudo service mysql start 关闭服务端:suodo service mysql stop 重启服务端:suodo service mysql restart 连接数据 ...

  7. mysql数据库的基本操作:创建数据库、查看数据库、修改数据库、删除数据库

    本节相关: 创建数据库 查看数据库 修改数据库 删除数据库 首发时间:2018-02-13 20:47 修改: 2018-04-07:考虑到规范化,将所有语法中“关键字”变成大写;以及因为整理“mys ...

  8. EntityFramework使用Code First模式创建数据库控制生成单数形式的表名

    使用Code-First模式生成数据库时,默认生成的数据库表的名称为类型的复数形式,例如实体类名称是"User",默认生成的数据库表名为“Users”,多数情况下我们并不想生成的数 ...

  9. MVC CodeFirst简单的创建数据库(非常详细的步骤)

       最近在学习MVC的开发,相信有过开发经验的人初学一个新的框架时候的想法跟我一样最关心的就是这个框架如何架构,每个架构如何分工,以及最最关键的就是如何与数据库通信,再下来才是学习基础的页面设计啊等 ...

随机推荐

  1. Java存储过程调用CallableStatement

    什么是存储过程? 一个存储过程是一个可编程的函数,它在数据库中创建并保存.它可以有SQL语句和一些特殊的控制结构组成.当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有 ...

  2. Linux之top命令

    top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.下面详细介绍它的使用方法.top是一个动态显示过程,即可以通过用户按键来不断刷新 ...

  3. jquery 获取鼠标位置

    //获取鼠标位置 $(function(){ $('body').mousemove(function(e) { e = e || window.event; __xx = e.pageX || e. ...

  4. eclipse不能打断点的问题

    今天突然eclipse不能打断点了,按ctrl+左键也不能进行方法导向了.查了很多资料还是不清楚怎么回事. 我把原来的文件再重新复制下,这个副本竟然是正常的. 结论:把原来的文件重新编译生成class ...

  5. vitamio视频播放库

    vitamio视频播放库 http://www.d    evstore.cn/evaluation/testInfo/155-181.html

  6. Struts2的Action中如何操作作用域对象

    得到作用域对象有三种方法,这里用代码来解释: package com.cy.action; import javax.servlet.ServletContext; import javax.serv ...

  7. Linq To Sql 语法 子查询 & In & Join

    子查询 描述:查询订单数超过5的顾客信息 查询句法: var 子查询 =from cin ctx.Customers                    where                  ...

  8. mysql连接字符串

    MySQL中 concat 函数使用方法:CONCAT(str1,str2,…)

  9. iOS高性能图片架构与设计

    版权声明:本文由柯灵杰原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/157 来源:腾云阁 https://www.qclo ...

  10. SAP 物料主数据屏幕增强

    1. 用事务代码OMT3C,(或者用SPRO进入,后勤-常规->物料主记录->配置物料主记录->创建定制子屏幕的程序)创建函数功能组,如ZMGD1,然后保存. 2. 用事务代码SE8 ...