素材牛VIP会员
分享一个C# MVC5+EF 映射表的技术点
 I***男  分类:SQL代码  人气:2929  回帖:5  发布于5年前 收藏

EF中 一直被code first还是 DB first干扰了很久 后来觉得 如果是小团队 一两个人 完全可以用code first工作

接下来在操作中碰到一个问题  model实体类中 第一次dbset是没有问题的 代码如下:

public class CC_Main:DbContext
{
        public CC_Main():base("CConline") {
        }
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            
        }

        public DbSetU { get; set; } //会员表
       
}

model实体类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace S.Models
{
    [Table("cc_user")]
    public class CC_user
    {
        [Key]
        public int ID { get; set; }
        public string Uname { get; set; }
        public string Pwd { get; set; }
        public string Oldpwd { get; set; }
        public string Nic { get; set; } 
        public string Addtime { get; set; }
        public Decimal Coins { get; set; }
        public string Qx { get; set; }
        public int Lock { get; set; }
        public string Top_Uname { get; set; }
    }
}
但是 当你修改或者添加一个model实体的时候 发现数据库会被删除重建 那么我们肯定是不希望这样的 因为里面有我们的测试数据 不可能每次增加或者修改实体类就重建数据库的  对于新手的我来说 我查了一上午的资料 才解决这个问题  哎 没办法 走弯路

1.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace S.Models
{
    [Table("cc_user")]
    public class CC_user
    {
        [Key]
        public int ID { get; set; }
        public string Uname { get; set; }
        public string Pwd { get; set; }
        public string Oldpwd { get; set; }
        public string Nic { get; set; } 
        public string Addtime { get; set; }
        public Decimal Coins { get; set; }
        public string Qx { get; set; }
        public int Lock { get; set; }
        public string Top_Uname { get; set; }
    }
}
2.但是不重建 我们新增或者修改了的的实体类 如何与数据库联动呢 这里就要用到 数据迁移操作了 操作如下:
// 数据迁移操作  vs2017---工具---NuGet管理器---程序包管理器控制台
// 1.enable-migrations -force
// 2.add-migration 自定义名称 比如:add-migration addsomeItem
// 3.update-Database
// --------以上三部完成数据库数据迁移工作 搭配---
// ----Database.SetInitializer(new CreateDatabaseIfNotExists());如果数据库存在则不创建数据库完美解决了EF操作数据库删除重建的问题

//最后着重提一下 在自定义名称里的 那个cs文件里的语法 其实是Linq的操作数据库语法 可以根据里面的语法进行调整你所需要的操作
 标签:映射efmvc

讨论这个帖子(5)垃圾回帖将一律封号处理……

Lv1 新人
攒***官 学生 5年前#1
感谢分享
Lv1 新人
15***24 职业无 5年前#2
Lv1 新人
骚***8 职业无 5年前#3
感谢分享
Lv1 新人
qq***28 职业无 1年前#4
感觉分享
Lv2 入门
qq***27 职业无 1年前#5
感谢分享
 文明上网,理性发言!   😉 阿里云幸运券,戳我领取