EF框架搭建小总结--CodeFirst代码优先
前言:之前在下总结编写了一篇 EF框架搭建小总结--ModelFirst模型优先 博文,看到一段时间内该博文的访问量蹭、蹭蹭、蹭蹭蹭...往上涨(实际也不是很多,嘿嘿),但是还是按捺不住内心的喜悦(蛮有成就感的),感觉为大家做了一点点小小的贡献,在下也就再接再厉(趁风大,再浪浪),总结一篇 CodeFirst代码优先的博文,若有不当之处,还望大家斧正。
Code First介绍: Code First模式是一种很cool的模式,手动创建POCO(全称Plain Old Class Object,也就是最基本的CLR Class,实体类)类,数据层DbContext及映射关系,通过Database.SetInitializer(本次采用dbcontext.Database.CreateIfNotExists方法)生成数据库,自动生成方便快速、更易维护、非常灵活。
使用工具: win7操作系统,vs2012, sqlserver2008
开始
1.创建新项目

2.创建完项目后,需要引用"EntityFramework"程序包,且看如何引入
2.1 在【引用】上单击右键,选中【管理NuGet程序包(N)】

2.2 在弹出的窗口上选择【联机】,找到【EntityFramework】程序包,点击安装

2.3 安装后的效果

3 开始上代码
3.1 创建一个User实体类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace CodeFirst
{
public class User
{
public int Id { set; get; }
public string Name { set; get; }
public string Password { set; get; }
}
}
3.2 创建连接上下文的类,该类的一些说明在代码里已标注
using System;
using System.Collections.Generic;
using System.Data.Entity;// DbContext类需要引入的类库
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace CodeFirst
{
//该类继承于DbContext类,
//DbContext是EntityFramework很重要的部分,连接类与数据库的桥梁,是与数据库通信的主要类
public class CodeFirstDbContext : DbContext {
//构造函数
public CodeFirstDbContext()
: base("name = CodeFirstDbContext")//根据配置文件中链接数据库
//CodeFirstDbContext会在app.config中进行配置
{
}
public DbSet<User> User { get; set; } }
}
3.3 在配置文件App.config中添加内容
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework> <!--连接本地sql server数据库需要配置的文件-->
<connectionStrings>
<add name="CodeFirstDbContext" connectionString="Data Source=.;Initial Catalog=DatabaseName;Integrated Security=True;" providerName="System.Data.SqlClient"/>
</connectionStrings> </configuration>
其中Data Source = . 表示连接的是本地数据库,Initial Catalog=DatabaseName;表示一会创建的数据库名字为DatabaseName
3.4 在主程序中创建数据库,数据表,并填入字段
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace CodeFirst
{
class Program
{
static void Main(string[] args)
{
//创建上下文
CodeFirstDbContext dbcontext = new CodeFirstDbContext();
//创建数据库
dbcontext.Database.CreateIfNotExists();
//创建表,并将字段加入进去
User u = new User();
u.Name = "li";
u.Id = 1;
u.Password = "123456";
//将实体赋予上下文,并添加到表里
dbcontext.User.Add(u);
//保存
dbcontext.SaveChanges();
Console.WriteLine("成功");
Console.ReadKey(); }
}
}
运行主程序后,便会在数据库中成功创建你的数据库,数据表。
结果:

EF框架搭建小总结--CodeFirst代码优先的更多相关文章
- EF框架搭建小总结--CodeFirst模型优先
前言:之前在下总结编写了一篇 EF框架搭建小总结--ModelFirst模型优先 博文,看到一段时间内该博文的访问量蹭.蹭蹭.蹭蹭蹭...往上涨(实际也不是很多,嘿嘿),但是还是按捺不住内心的喜悦(蛮 ...
- EF框架搭建小总结--ModelFirst模型优先
前言:去年刚工作的时候,也是刚刚正式接触.net,当时了解了EF以及三种开发模式,Database First.Model First .Code First.公司用的开发模式是Database Fi ...
- EF-关于类库中EntityFramework之CodeFirst(代码优先)的操作浅析
前有ADO.NET,后有ORM模式的EntityFramework.这两种技术都实现了对数据库的访问操作.如果要说哪种技术好,就看项目架构的大小,使用者的熟练程度等等,毕竟萝卜白菜,各有所爱. 今天要 ...
- Wcf+EF框架搭建实例
一.最近在使用Wcf创建数据服务,但是在和EF框架搭建数据访问时遇到了许多问题 下面是目前整理的基本框架代码,经供参考使用,源代码地址:http://git.oschina.net/tiama3798 ...
- EF框架搭建
EF框架搭配lambda表达式使用起来非常高效便捷,有两种方法使用EF框架: 一是.添加“ADO.NET Entity Data Model”项,绑定配置数据库链接,勾选表和存储过程等,自动生成实体: ...
- C# ORM—Entity Framework 之Code first(代码优先)(二)
一.Entity Framework Code first(代码优先)使用过程 1.1Entity Framework 代码优先简介 不得不提Entity Framework Code First这个 ...
- EF框架 完整项目记录
今天终于能用EF框架搭建一个项目,同时能连接sqlserver 数据库.mysql 数据库 1.必须的文件 2.将必须文件导入项目,此处用到“管理 NuGet 程序包”,由于从网上下载比较慢,此处从本 ...
- Mxnet框架搭建
Mxnet框架搭建 小书匠 kindle Mxnet是亚马逊开发的深度学习框架,和谷歌Tensorflow是同类型的框架. 1.安装Mxnet 这里只展示在线安装,源码编译安装等不演示:GPU安装与 ...
- UI自动化框架搭建之Python3
UI自动化框架搭建--unittest 使用的代码是Python3版本,与时俱进哈哈 解释一下我的框架目录接口(每个人框架的目录接口不一样,根据实际要求) common目录:公共模块,这个地方可以存放 ...
随机推荐
- 织梦dedecms搜索页加上序列号autoindex
在我们做织梦搜索页模板的时候经常会使用到autoindex标签.那么怎么才能实现搜索页可以使用呢?下面给大家分享下解决方法: 打开文件:include/arc.searchview.class.php ...
- linux shell重定向
http://note.youdao.com/noteshare?id=e944e6315d1566b3417e6f59305ddedc
- oracle 工作笔记,不定期更新
此博客为工作时,所见技术问题的解决方案笔记,欢迎大家转载,转载请注明出处,谢谢~ 更新时间: 2017-07-12 1. clob字段值读取时,借用extractvalue或extract函数读取节点 ...
- yearProgress.vue
<template> <div class="progressbar"> <el-progress :text-inside="true&q ...
- 一个ssm综合小案例-商品订单管理-第二天
准确来说是第二三天,一时兴起,把这个小项目一鼓作气写完了(较大的bug 均已被我手动捉出并 fix )才来写一篇博客. 接上文 第一天配置继续讲解:
- Mysql select id 加上order by 后结果不一致
测试数据将近280万 1.SELECT id FROM cbbd ORDER BY id LIMIT 900000,10 2.SELECT id FROM cbbd LIMIT 900000,10 ...
- 20155338 2016-2017-2 《Java程序设计》第6周学习总结
20155338 2016-2017-2 <Java程序设计>第6周学习总结 教材学习内容总结 输入和输出 • 串流设计概念 要想活用输入/输出API,一定先要了解Java中如何以串流抽象 ...
- 20155227 2016-2017-2 《Java程序设计》第五周学习总结
20155227 2016-2017-2 <Java程序设计>第五周学习总结 教材学习内容总结 语法与继承架构 使用try...catch JVM会尝试执行try区块中的程序代码,如果发生 ...
- Python3之外部文件调用Django程序操作model等文件实现
import os import sys import django sys.path.append(r'C:\Users\Administrator\PycharmProjects\your pro ...
- 第7月第12天 opengles background
1. After your app exits its applicationDidEnterBackground: method, it must not make any new OpenGL E ...