简单Demo 使用Code Fisrt步骤
使用Code Fisrt步骤
1、开启VS,创建控制台项目:CodeFirstDemo1

2、利用NuGet引进 Entity Framework类库

图住:右击项目名称,在弹出的选项菜单选择【管理NuGet程序包(N)】

图注:在选择或搜索EntityFramework,当前最新版本为6.3.1

图注:添加成功后会多3个引用,和一个packages.config文件,App.config内容也发生了相应的变化

3、添加实体类文件(POCO) Category.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace CodeFirstDemo1
{
class Category
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; } }
}
4、在配置文件中创建数据库连接字符串,<configuration>节点内加,其中Model1 需要在DbContext用到,用来关联数据库,CodeFirstSample为数据库名称(不需要在SQL Server Management Studio中先建数据库)
<connectionStrings>
<add name="Model1" connectionString="data source=.;initial catalog=CodeFirstSample;persist security info=True;user id=sa;password=123456;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
</connectionStrings>
5、添加上下文类CodeFirstContext继承DbContext(需引入命名空间 using System.Data.Entity;),名字随意,建议末尾加Context
using System;
using System.Collections.Generic;
using System.Data.Entity;//
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace CodeFirstDemo1
{
class CodeFirstContext : DbContext
{
public DbSet<Category> Categories { get; set; } public CodeFirstContext()
: base("name=Model1")//配置文件中的数据库连接字符串名称Model1
{ } protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//在这里写映射到数据库表和字段的规则,不写为EF默认
}
}
}
6、访问(操作)实体类,编辑Program类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace CodeFirstDemo1
{
class Program
{
static void Main(string[] args)
{
using (var context = new CodeFirstContext())
{
//添加一个分类
var category = new Category { Name = "水果", Description = "水果分类的描述。" };
context.Categories.Add(category);
context.SaveChanges(); //
var q = from c in context.Categories
select c;
foreach (var item in q)
{
Console.WriteLine("{0} {1} {2}", item.Id, item.Name, item.Description);
}
Console.ReadKey();
}
}
}
}
7、试运行,结果


图注:数据库和表,字段都生成成功,到这就完成了一次最小限度的完整的Code Fisrt示例。
后续问题
如上图的表字段,Name的类型长度是max,表的名称我不想叫Categories,如果我再加个子表如 Product,该如何用Code First实现呢?
这个时候就需要用到什么有备注的地方OnModelCreating 这个方法内写映射规则了。
简单Demo 使用Code Fisrt步骤的更多相关文章
- Spring的简单demo
---------------------------------------- 开发一个Spring的简单Demo,具体的步骤如下: 1.构造一个maven项目 2.在maven项目的pom.xml ...
- android JNI 简单demo(2)它JNI demo 写
android JNI 简单demo(2)它JNI demo 写 一.搭建Cygwin 环境:http://blog.csdn.net/androidolblog/article/details/25 ...
- 服务网关Ocelot 入门Demo系列(01-Ocelot极简单Demo及负载均衡的配置)
[前言] Ocelot是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由.请求聚合.服务发现.认证.鉴权.限流熔断.并内置了负载均衡器与Service Fabric.Butt ...
- 20个令人惊叹的深度学习应用(Demo+Paper+Code)
20个令人惊叹的深度学习应用(Demo+Paper+Code) 从计算机视觉到自然语言处理,在过去的几年里,深度学习技术被应用到了数以百计的实际问题中.诸多案例也已经证明,深度学习能让工作比之前做得更 ...
- Django实战(一)之简单Demo
菜鸟教程上Django安装可供参考: 参考链接: http://www.runoob.com/django/django-install.html 菜鸟教程上如果不行的话,下面博客网址可以供参考 Li ...
- Spring环境搭建及简单demo
1. Spring框架简介(以下这段话可用于面试求职) Spring为JavaEE开发提供了一个轻量级的解决方案,主要表现为, IOC(或者叫做DI)的核心机制,提供了bean工厂(Spring容器) ...
- 设计模式之单例模式的简单demo
/* * 设计模式之单例模式的简单demo */ class Single { /* * 创建一个本类对象. * 和get/set方法思想一样,类不能直接调用对象 * 所以用private限制权限 * ...
- 使用Spring缓存的简单Demo
使用Spring缓存的简单Demo 1. 首先创建Maven工程,在Pom中配置 <dependency> <groupId>org.springframework</g ...
- Managed DirectX中的DirectShow应用(简单Demo及源码)
阅读目录 介绍 准备工作 环境搭建 简单Demo 显示效果 其他 Demo下载 介绍 DirectX是Microsoft开发的基于Windows平台的一组API,它是为高速的实时动画渲染.交互式音乐和 ...
随机推荐
- linux 常用命令(个人记录)
Linux专家的秘诀:思考-实践-在思考-再实践...linux常用命令:root 管理员用户startx 进入shutdown -h now 立刻关机shutdown -r now 现在重新启动计算 ...
- 初始Hive
Hive 背景 引入原因 对存在HDFS上的文件或HBase中的表进行查询时,是要手工写一推MapReduce代码 对于统计任务,只能由懂MapReduce的程序员才能搞定 耗时耗力,更多精力没有有效 ...
- TTL与CMOS门电路
个人观点总结 对TTL和CMOS门电路的认识: 1.构成 TTL集成电路一般都是有三极管(或二极管)和电阻.电容构成,其中三极管(二极管)是作为主要的开关器件 CMOS集成电路一般是由场效应管和电阻. ...
- List of RGBD datasets
This is an incomplete list of datasets which were captured using a Kinect or similar devices. I init ...
- 作业调度系统quartz.net
任务调度在我们日常开发过程中非常常见,比如:每天晚上0点自动执行某某操作:每周三晚上2点执行某某操作:......当然,我们处理这类问题的方法也有很多,比如:sql的自动任务:windows上创建任务 ...
- ionic 2.x 3.x项目结构解析
myApp │ config.xml //项目配置文件,包名.名称.minSdkVersion等都在此处配置 │ ionic.config.json │ package.json //项目依赖文件列表 ...
- qt在windows下编译遇到的一些问题
软件是在linux上写的,然而搬到windows上来遇到了好多问题.... 想跪.... 首先就是压根编译不了的问题....这个问题困扰我好久了....一直报错undefined reference ...
- 【CJOJ2616】 【HZOI 2016】偏序 I(cdq分治,树状数组)
传送门 CJOJ Solution 考虑这是一个四维偏序对吧. 直接cdq套在一起,然后这题有两种实现方法(树状数组的更快!) 代码实现1(cdq+cdq+cdq) /* mail: mleautom ...
- ubuntu 环境 openstack 源码包制成 deb 包
安装软件: sudo apt-get install dh-make checkinstall cd neutron sudo checkinstall -D -y -install=no -pkgv ...
- Git-工作区和暂存区的概念
工作区(Working Directory):就是在电脑里能看到的目录,如testcase文件夹就是一个工作区. 版本库(Repository):工作区有一个隐藏目录.git,是Git的版本库. ...