.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. 数据 ...
随机推荐
- Java SE学习【二】——面向对象
面向对象的学习也进行了一段时间,这段时间学了,类和对象:属性:方法:封装:继承:多态:接口.也算是有一些自己的理解,不愧是贴近人类思维的思想,老师讲时我常常会想到以前的一些事物和其交相印证,其中最常想 ...
- .net判断当前时间是否在工作时间段内
整理代码,判断当前时间是否在配置的工作时间段内,代码如下: public static bool getTimeSpan(string _strWorkingDayAM, string _strWor ...
- oracle 中删除表 drop delete truncate
oracle 中删除表 drop delete truncate 相同点,使用drop delete truncate 都会删除表中的内容 drop table 表名 delete from 表名 ...
- Python多进程并发操作进程池Pool
目录: multiprocessing模块 Pool类 apply apply_async map close terminate join 进程实例 multiprocessing模块 如果你打算编 ...
- python生成器初步了解
一.生成器 生成器的本质就是迭代器 一个一个的创建对象 1.创建生成器的方式: 1.生成器函数 2.通过生成器表达式来获取生成器 3.类型转换 2.优点 节省内存 ,生成器本身就是代码 ...
- linux之网络
一 什么是网络,网络能干什么 网络出现的主要目的就是实现主机和主机之间的通信,而互联网协议(Internet Protocol Suite)就是连接两台计算机之间的internet一系列统一的标准.互 ...
- Neural Network Basics
在学习NLP之前还是要打好基础,第二部分就是神经网络基础. 知识点总结: 1.神经网络概要: 2. 神经网络表示: 第0层为输入层(input layer).隐藏层(hidden layer).输出层 ...
- Python学习杂记
Python中关键字yield有什么作用? 首先得理解generators,而理解generators前还要理解iterables: 你可以用在for...in...语句中的都是可迭代的:比如list ...
- 2018.11.24 poj3693Maximum repetition substring(后缀数组)
传送门 后缀数组好题. 考虑枚举循环节长度lenlenlen. 然后考虑枚举循环节的起点来更新答案. 但是直接枚举每次O(n)O(n)O(n). 考虑枚举len∗k+1len*k+1len∗k+1作为 ...
- 2018.11.02 洛谷P2312 解方程(数论)
传送门 直接做肯定会TLETLETLE. 于是考验乱搞能力的时候到了. 我们随便选几个质数来checkcheckcheck合法解,如果一个数无论怎么checkcheckcheck都是合法的那么就有很大 ...