我的博客原文地址:http://www.star110.com/Note/ReadArticle/60641215331146140041.html

环境:.NET MVC4 + EF6.0

连接数据库的方式有很多,这里我暂时只讲一种,因为我觉得这种方式思路比较清晰,也比较灵活,下面就让我开始吧,希望大家能够看懂。

1、新建一个实体数据模型叫做WebERPDAL,请看图操作

根据提示,完成后面的操作。

2、然后我们需要建立数据库模型以及映射关系,新建两个文件,分别叫做ERPModel.cs和ERPModelMap.cs

ERPModel.cs中我们存放数据模型,ERPModelMap.cs中我们对数据模型进行数据库映射

3、建立数据模型

将下面代码放入ERPModel.cs文件中

  1. public class UserInfo
  2. {
  3. public int id { set; get; }
  4. //用户名
  5. public String username { set; get; }
  6. //昵称
  7. public String nickname { set; get; }
  8. //用户密码
  9. public String password { set; get; }
  10. //用户组
  11. public int usergroup { set; get; }
  12. //创建时间
  13. public DateTime createtime { set; get; }
  14. //邮箱
  15. public String email { set; get; }
  16. //这一句外键关系用到,关联用户组权限表
  17. public virtual UserGroup UserGroup { set; get; }
  18. }
  1. public class UserGroup
  2. {
  3. public int id { set; get; }
  4. //用户组名称
  5. public String usergroup { set; get; }
  6. //用户组权限
  7. public int grouproot { set; get; }
  8. //外键关系用到,关联用户信息表
  9. public virtual ICollection<UserInfo> UserInfo { set; get; }
  10. }

4、建立数据库与模型映射

将下面代码放入ERPModelMap.cs中

  1. public class UserGroupMap:EntityTypeConfiguration<UserGroup>
  2. {
  3. public UserGroupMap()
  4. {
  5. this.HasKey(t => t.id);
  6. this.ToTable("UserGroup");
  7. this.Property(t => t.id).HasColumnName("id");
  8. this.Property(t => t.grouproot).HasColumnName("grouproot").IsRequired();
  9. this.Property(t => t.usergroup).HasColumnName("usergroup").IsRequired();
  10. }
  11. }
  1. public class UserInfoMap : EntityTypeConfiguration<UserInfo>
  2. {
  3. public UserInfoMap()
  4. {
  5.  
  6. this.HasKey(t => t.id);
  7. this.ToTable("UserInfo");
  8. this.Property(t => t.id).HasColumnName("id").IsRequired();
  9. this.Property(t=>t.username).HasColumnName("username").IsRequired().IsUnicode();
  10. this.Property(t => t.nickname).HasColumnName("nickname").IsRequired();
  11. this.Property(t => t.password).HasColumnName("password").IsRequired();
  12. this.Property(t => t.usergroup).HasColumnName("usergroup").IsRequired();
  13. this.Property(t => t.createtime).HasColumnName("createtime").IsRequired();
  14. this.Property(t => t.email).HasColumnName("email");
  15. //定义外键关系
  16. this.HasRequired(t=>t.UserGroup).WithMany(t=>t.UserInfo).HasForeignKey(t=>t.usergroup);
  17. }
  18. }

5、连接数据库,映射模型

在WebERPDAL类中:

并为模型中包含的每种实体类型都添加 DbSet

  1. public virtual DbSet<UserGroup> UserGroup { set; get; }
  2. public virtual DbSet<UserInfo> UserInfo { set; get; }

重载方法OnModelCreating

  1. protected override void OnModelCreating(DbModelBuilder modelBuilder)
  2. {
  3. modelBuilder.Configurations.Add(new UserGroupMap());
  4. modelBuilder.Configurations.Add(new UserInfoMap());
  5. base.OnModelCreating(modelBuilder);
  6. }

最后在Web.config中配置数据库连接

例如:

  1. <connectionStrings>
  2. <add name="WebERPDAL" connectionString="data source=[服务器地址];initial catalog=[数据库名];user id=[用户名];password=[数据库密码];MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
  3. </connectionStrings>

6、使用方法之查询:

  1. WebERPDAL db = new WebERPDAL();
  2. UserInfo user = db.UserInfo.Where(t => t.username == "用户1").Where(t => t.password == "").FirstOrDefault();

7、使用方法之修改:

  1. WebERPDAL db = new WebERPDAL();
  2. UserInfo info = new UserInfo();
  3. info.password = "";
  4. db.Entry(info).State = System.Data.Entity.EntityState.Modified;
  5. db.SaveChanges();

ASP.NET MVC4 数据库连接(EF6.0)的更多相关文章

  1. Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理

    这是本人第一次写,写的不好的地方还忘包含.写这个的主要原因是想通过这个来学习下EF的CodeFirst模式,本来也想用AngularJs来玩玩的,但是自己只会普通的绑定,对指令这些不是很熟悉,所以就基 ...

  2. Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理1

    首先给上项目的整体框架图:,这里我没有使用BLL,因为感觉太烦了就没有去使用. 那么接下来我们首先先去Model层中添加Model. 管理员类: using System; using System. ...

  3. Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理3

    首先在webconfig中加入下面这句代码,这个主要是用来生成数据库的连接字符串 <connectionStrings> <add name="AuthorDesignCo ...

  4. Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理4

    首先先加个区域,名为Admin using System.Web.Mvc; namespace AuthorDesign.Web.Areas.Admin { public class AdminAre ...

  5. Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理5

    我们先直接拷贝下blank.html这个页面的代码,顺带先建立一个Home控制器,并添加Index视图.将代码拷贝进去. <!DOCTYPE html> <html lang=&qu ...

  6. Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理6

    接下来先做角色这一板块的(增删改查),首先要新建一个Role控制器,在添加一个RoleList的视图.表格打算采用的是bootstrap的表格. using System; using System. ...

  7. Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理7

    做完角色之后接下来做先做页面按钮的增加.删除.修改.这里用到的功能和角色那边是一样的.就不多说了.直接上代码. 后台控制器代码 using AuthorDesign.Web.App_Start.Com ...

  8. Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理8

    接下来做的是对页面的增删改查与页面与页面按钮之间的联系.先上代码和页面效果 using AuthorDesign.Web.App_Start.Common; using System; using S ...

  9. Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理9

    前两天因有事就没来得及写.今天刚刚好空了.这次写的是对角色和管理员对页面按钮之间的控制.先看页面效果 说明:先根据角色设置好角色的权限,然后管理员在对应的角色下的权限去设置其权限. 在设置角色权限的时 ...

随机推荐

  1. 修改eclipse启动时eclipse使用的jre

    eclipse在启动的时候,和环境变量中的jdk不兼容,可以单独制定eclipse运行的jre. 方法: 在eclipse的配置文件里增加-vm参数即可. 打开eclipse目录下的eclipse.i ...

  2. 使用proxool 连接池:No suitable driver found for proxool

    使用proxool连接池时:报错误No suitable driver found for proxool.shide的原因: ①.WEB-INF目录下的lib中没有proxool连接池jar驱动包. ...

  3. JAVA SE 803 考试前突击

    考试的宗旨仍然是掌握基础知识,不过鉴于Oracle的这个认证考试还有不少的大家来找茬的成份在,所以一定一定要细心为上.   关于抽象类的坑点集合: 抽象类不是必须得有抽象方法,但有抽象方法的类必须是抽 ...

  4. [原]shader实现矩形圆角

    哎!竭力想说清楚这个实现原理,并解释清楚shader里面的算法,结果发现越解释越不好理解,见谅! 一.实现目标:矩形四角是圆弧效果 二.实现的原理:通过每个角绘制1/4圆弧,剔除掉圆弧以外的部分. 原 ...

  5. 给animator动态添加事件

    using UnityEngine; using System.Collections; public class setAnimationEvent : MonoBehaviour { public ...

  6. MSIL 教程(三):类和异常处理(转)

    转自:http://www.cnblogs.com/Yahong111/archive/2007/08/16/857771.html 续上文[翻译]MSIL 教程(二):数组.分支.循环.使用不安全代 ...

  7. 30分钟入门Java8之方法引用

    30分钟入门Java8之方法引用 前言 之前两篇文章分别介绍了Java8的lambda表达式和默认方法和静态接口方法.今天我们继续学习Java8的新语言特性--方法引用(Method Referenc ...

  8. Legolas工业自动化平台案例 —— 水源地自动化监控系统

    天津港爆炸事件后,除了安置群众.追究事故责任外,人们最关心的莫过于爆炸污染物对于周边环境的影响,其中最重要的一块就是饮用水的安全.所幸的是,水源的安全监测是实实在在有据可依的.环保单位和供水企业在建设 ...

  9. Android应用中使用及实现系统“分享”接口

    为了应用的推广.传播,很多的应用中都有“分享”功能,一个按钮,点击后会出现短信.微博等等一切实现了分享功能的应用列表.这一篇文章主要介绍怎么调用分享功能和怎么实现分享接口让自己应用出现分享列表中.An ...

  10. [CS231n-CNN] Convolutional Neural Networks: architectures, convolution / pooling layers

    课程主页:http://cs231n.stanford.edu/     参考: 细说卷积神经网络:http://blog.csdn.net/han_xiaoyang/article/details/ ...