• ASP.NET MVC4 数据库连接(EF6.0)


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

    环境:.NET MVC4 + EF6.0

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

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

    blob.png

    blob.png

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

    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();
  • 相关阅读:
    一个完整的移动端项目的构建步骤——框架搭构1
    简单日历,纯js
    javascript语句语义大全(7)
    微软笔试Highway问题解析
    中国电信翼支付2014编程大赛决赛
    海岛问题
    大数计算
    Dijkstra算法
    Android测试之Keycode
    字符串解析
  • 原文地址:https://www.cnblogs.com/zhuxiaoxiao/p/5548963.html
Copyright © 2020-2023  润新知