我的博客原文地址: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文件中
public class UserInfo { public int id { set; get; } //用户名 public String username { set; get; } //昵称 public String nickname { set; get; } //用户密码 public String password { set; get; } //用户组 public int usergroup { set; get; } //创建时间 public DateTime createtime { set; get; } //邮箱 public String email { set; get; } //这一句外键关系用到,关联用户组权限表 public virtual UserGroup UserGroup { set; get; } }
public class UserGroup { public int id { set; get; } //用户组名称 public String usergroup { set; get; } //用户组权限 public int grouproot { set; get; } //外键关系用到,关联用户信息表 public virtual ICollection<UserInfo> UserInfo { set; get; } }
4、建立数据库与模型映射
将下面代码放入ERPModelMap.cs中
public class UserGroupMap:EntityTypeConfiguration<UserGroup> { public UserGroupMap() { this.HasKey(t => t.id); this.ToTable("UserGroup"); this.Property(t => t.id).HasColumnName("id"); this.Property(t => t.grouproot).HasColumnName("grouproot").IsRequired(); this.Property(t => t.usergroup).HasColumnName("usergroup").IsRequired(); } }
public class UserInfoMap : EntityTypeConfiguration<UserInfo> { public UserInfoMap() { this.HasKey(t => t.id); this.ToTable("UserInfo"); this.Property(t => t.id).HasColumnName("id").IsRequired(); this.Property(t=>t.username).HasColumnName("username").IsRequired().IsUnicode(); this.Property(t => t.nickname).HasColumnName("nickname").IsRequired(); this.Property(t => t.password).HasColumnName("password").IsRequired(); this.Property(t => t.usergroup).HasColumnName("usergroup").IsRequired(); this.Property(t => t.createtime).HasColumnName("createtime").IsRequired(); this.Property(t => t.email).HasColumnName("email"); //定义外键关系 this.HasRequired(t=>t.UserGroup).WithMany(t=>t.UserInfo).HasForeignKey(t=>t.usergroup); } }
5、连接数据库,映射模型
在WebERPDAL类中:
并为模型中包含的每种实体类型都添加 DbSet
public virtual DbSet<UserGroup> UserGroup { set; get; } public virtual DbSet<UserInfo> UserInfo { set; get; }
重载方法OnModelCreating
protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Configurations.Add(new UserGroupMap()); modelBuilder.Configurations.Add(new UserInfoMap()); base.OnModelCreating(modelBuilder); }
最后在Web.config中配置数据库连接
例如:
<connectionStrings> <add name="WebERPDAL" connectionString="data source=[服务器地址];initial catalog=[数据库名];user id=[用户名];password=[数据库密码];MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" /> </connectionStrings>
6、使用方法之查询:
WebERPDAL db = new WebERPDAL(); UserInfo user = db.UserInfo.Where(t => t.username == "用户1").Where(t => t.password == "1234").FirstOrDefault();
7、使用方法之修改:
WebERPDAL db = new WebERPDAL(); UserInfo info = new UserInfo(); info.password = "7777"; db.Entry(info).State = System.Data.Entity.EntityState.Modified; db.SaveChanges();