.Net下EF的简单实现
1.连接SQLServer,创建数据库TestDB;

2.添加EF引用,点击工具-NuGet包管理器-管理解决方案的NuGet程序包,

搜索EntityFramework包,点击安装;

3.在Web.config中添加节点
<connectionStrings>
<add connectionString="Data Source=(local);Initial Catalog=TestDB;Integrated Security=True" name="TestDBDAL" providerName="System.Data.SqlClient" />
</connectionStrings>
其中Data Source为服务器名,Initial Catalog为刚才在SQLServer中新建的数据库名,name则是接下来在代码中会使用到的名字,数据访问层和数据库之间的映射通过名称实现的,ConnectionString(连接字符串)的名称和数据访问层的类名称是相同的,都是TestDBDAL,因此会自动实现映射;
4.在Models文件下添加“PlayerModel”新类,为该类添加三个属性,并引用System.ComponentModel.DataAnnotations命名空间,在PlayerID属性上加上[Key]关键字标识主键;
using System.ComponentModel.DataAnnotations; namespace WebApplication6.Models
{
public class PlayerModel
{
[Key]
public int PlayerID { get; set; }
public string EnglishName { get; set; }
public string ChineseName { get; set; }
}
}
5.在项目下添加“DataAccessLayer”文件夹,并且添加“TestDBDAL.cs”新类,并且引用System.Data.Entity命名空间,使该类继承DbContext类。定义映射关系,重写OnModelCreating方法,其中Players为表名,运行时会自动生成在SQLServer中。再在该类下定义一个DbSet类型的新属性,表示数据库中能查询到的所有play数据;
using System.Data.Entity;
using WebApplication6.Models; namespace WebApplication6.DataAccessLayer
{
public class TestDBDAL : DbContext
{
public DbSet<PlayerModel> Players { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<PlayerModel>().ToTable("Players");
base.OnModelCreating(modelBuilder);
}
}
}
6.在HomeController.cs下的Index方法中添加获取Players的方法;
public ActionResult Index()
{
TestDBDAL testDBDAL = new TestDBDAL();
List<PlayerModel> listPlayers = testDBDAL.Players.ToList();
return View();
}
7.运行项目;刷新TestDB数据库,会看到已经新建了Players表,并且有3列属性,其中PlayerID为主键。

8.为该表添加数据,并保存;

9.在Model文件夹下添加ListPlayerModel.cs新类,并且添加一个List类型的属性;
using System.Collections.Generic; namespace WebApplication6.Models
{
public class ListPlayerModel
{
public List<PlayerModel> Employees { get; set; }
}
}
10.将HomeController.cs下的Index方法改为获取数据库中players,并且传递给页面;
public ActionResult Index()
{
TestDBDAL testDBDAL = new TestDBDAL();
ListPlayerModel listPlayerModel = new ListPlayerModel
{
Employees = testDBDAL.Players.ToList()
};
return View(listPlayerModel);
}
11.在页面构造球员列表容器;
@using WebApplication6.Models;
@model ListPlayerModel
@{
Layout = null;
} <div>
<table>
<tr>
<th>EnglishName</th>
<th>ChineseName</th>
</tr>
@foreach (PlayerModel player in Model.Employees)
{
<tr>
<td>@player.EnglishName</td>
<td>@player.ChineseName</td>
</tr>
}
</table>
</div>
12.运行代码,页面会出现数据库中3个球员的属性;

插入数据
13.在index.cshtml后追加添加球员的div;
<div>
Add New Player<br />
<form action="/Home/AddNewPlayer" method="post">
EnglishName:<input name="EnglishName" value="" type="text" /><br />
ChineseName:<input name="ChineseName" value="" type="text" /><br />
<input type="submit" value="Add" />
</form>
</div>
14.在项目根目录下添加BAL(业务逻辑处理)文件夹,并在文件夹下新添PlayerBAL.cs类,用来处理球员相关的业务逻辑。在该类下添加AddPlayer方法;
using WebApplication6.DataAccessLayer;
using WebApplication6.Models; namespace WebApplication6.BAL
{
public class PlayerBAL
{
public PlayerModel AddPlayer(PlayerModel player)
{
TestDBDAL testDBDAL = new TestDBDAL();
testDBDAL.Players.Add(player);
testDBDAL.SaveChanges();
return player;
}
}
}
15.在HomeController下新添AddNewPlayer方法;
public ActionResult AddNewPlayer(PlayerModel p)
{
PlayerBAL playerBAL = new PlayerBAL();
playerBAL.AddPlayer(p);
return RedirectToAction("Index");
}
其中RedirectToAction方法是重定向到XXX的方法,这里是指添加完球员后再次重定向到Index.cshtml这个View;
16.运行代码,并在View上添加球员,点击Add,可得刚才添加完的球员信息;

.Net下EF的简单实现的更多相关文章
- EF的简单认识
EF的简单认识 EF简介 EntityFramwork是微软提供的一款ORM框架(Object Relational Mapping),实体映射模型,它的底层是ADO.NET的机制,使用EF将省去 ...
- linux下git的简单运用
linux下git的简单运用 windows下也有git,是git公司出的bash,基本上模拟了linux下命令行.许多常用的命令和linux下操作一样.也就是说,windows下的git命令操作和l ...
- Centos 6.5下一个SNMP简单配置(snmp protocol v3,监控宝)
Centos 6.5下一个SNMP简单配置(snmp protocol v3.监控宝) jom_ch@2014/7/25 1,安装 >yum -y install net-snmp net-sn ...
- Android下实现一个简单的计算器源码
下面的内容是关于Android下实现一个简单的计算器的内容. import android.app.Activity; import android.os.Bundle;import android. ...
- Linux下MySQL的简单操作
Linux下MySQL的简单操作 更改mysql数据库root的密码 首次进入数据库是不用密码的: [root@localhost ~]# /usr/local/mysql/bin/mysql -ur ...
- Linux系统下MongoDB的简单安装与基本操作
这篇文章主要介绍了Linux系统下MongoDB的简单安装与基本操作,需要的朋友可以参考下 Mongo DB ,是目前在IT行业非常流行的一种非关系型数据库(NoSql),其灵活的数据存储方式,备 ...
- linux系统下开启一个简单的web服务
linux 下开启一个简单的web服务: 首先需要linux下安装nodejs 然后创建一个test.js: vi test.js var http =require("http&quo ...
- kubernetes实战之consul篇及consul在windows下搭建consul简单测试环境
consul是一款服务发现中间件,1.12版本后增加servicemesh功能.consul是分布式的,可扩展的,高可用的根据官方文档介绍,目前已知最大的consul集群有5000个节点,consul ...
- MVC下EF添加上下文
这里我们用Code First方法创建数据库表.这个方法简单点说就是先创建Model再根据Model生成数据库表. 为了方便起见,这里用的数据库是Visual Studio自带的LocalDb. 数据 ...
随机推荐
- windows 下设置nginx负载均衡
#user nobody; worker_processes ; #error_log logs/error.log; #error_log logs/error.log notice; #error ...
- python学习 day5 (3月6日)
字典映射,{}键值对,key 唯一的 ,可哈希,容器型数据类型 可变的(不可哈希): 字典 列表 集合 都不可做键 不可变的(可哈希): 数字 字符串 bool 元组 frozeset() 可以做键 ...
- python生成器初步了解
一.生成器 生成器的本质就是迭代器 一个一个的创建对象 1.创建生成器的方式: 1.生成器函数 2.通过生成器表达式来获取生成器 3.类型转换 2.优点 节省内存 ,生成器本身就是代码 ...
- 爬取微博的数据时别人用的是FM.view方法传递html标签那么jsoup怎么解析呢
使用JSOUP就行 这里给出点思路 我只做了自己的首页和其他人的微博首页的抓取 其他的抓取没尝试(不好意思 比较懒...) 首先是利用JSOUP进行登陆 获取页面 看了下微博的登陆表格 发现用了aja ...
- 2018.11.09 bzoj1706: relays 奶牛接力跑(倍增+floyd)
传送门 倍增+floyd板子题. 先列出状态fi,j,kf_{i,j,k}fi,j,k表示经过iii条边从jjj到kkk的最短路. 然后发现可以用fi−1,j,kf_{i-1,j,k}fi−1,j, ...
- 1-9-假期训练心得(dp+bfs)
题目一:传送门 思路:就是简单的bfs,注意仔细审题,加上对转弯次数的判断. 题目二:传送门 思路:简单dp,记录每一秒每个位置接到的大饼的数量. 状态转移方程:dp[i][j]=max(dp[i][ ...
- (2)The secrets of learning a new language
https://www.ted.com/talks/lydia_machova_the_secrets_of_learning_a_new_language/transcript 00:13I lov ...
- Codeforces Round #514 (Div. 2) E. Split the Tree(倍增+贪心)
https://codeforces.com/contest/1059/problem/E 题意 给出一棵树,每个点都有一个权值,要求你找出最少条链,保证每个点都属于一条链,而且每条链不超过L个点 和 ...
- logcat命令详解【二】
eclipse 自带的 LogCat 工具太垃圾了, 开始用 adb logcat 在终端查看日志; 1. 解析 adb logcat 的帮助信息 在命令行中输入 adb logcat --help ...
- shell 脚本学习之read
Read的一些选项 Read可以带有-a, -d, -e, -n, -p, -r, -t, 和 -s八个选项. -a :将内容读入到数值中 echo -n 'please enter:'read -a ...