zoukankan      html  css  js  c++  java
  • EF+Mysql+DDD框架搭建(一)——code first准备

    准备mysql for vs工具

    mysql-connector-net-6.8.3.msi 网盘地址:http://pan.baidu.com/s/1jHDWINk

    mysql-for-visualstudio-1.1.4.msi 网盘地址:http://pan.baidu.com/s/1eSwemno

    打开VS工具-》库程序包管理器-》程序包管理器控制平台

    安装EF和mysql依赖包

    1.PM>  Install-Package MySql.Data.Entity -Version 6.9.8

    2.PM>  Install-Package EntityFramework

    安装完成之后配置数据库连接字符串connectionStrings

    <connectionStrings>
        <add name="MyContext" connectionString="Data Source=localhost;port=3307;Initial Catalog=mybook;user id=root;password=root;" providerName="MySql.Data.MySqlClient" />
      </connectionStrings>

    在web项目中model文件夹下创建Users实体和MyUserContext上下文对象

    Users实体类

    using System;
    using System.Collections.Generic;
    using System.ComponentModel.DataAnnotations;
    using System.Linq;
    using System.Web;
    
    namespace PMS.Web.Models
    {
        /// <summary>
        /// users实体对象
        /// </summary>
        public class Users
        {
            public int Id { get; set; }
            public string UserName { get; set; }
    
            //默认string映射到mysql里是longtext类型的,加长度之后就变成varchar了
            [MaxLength(30)]
            public string PassWord { get; set; }
        }
    }

    MyUserContext上下文对象

    using System;
    using System.Collections.Generic;
    using System.Data.Entity;
    using System.Linq;
    using System.Web;
    
    namespace PMS.Web.Models
    {
        [DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))]
        public class MyUserContext : DbContext
        {
            public MyUserContext()
                : base("name=MyContext")//web.config中connectionstring的名字
            {
            }
    
            public DbSet<Users> Users { get; set; }
        }
    }

    HomeController.cs

    using PMS.Web.Models;
    using System;
    using System.Collections.Generic;
    using System.Data.Entity;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    
    namespace PMS.Web.Controllers
    {
        public class HomeController : Controller
        {
            public ActionResult Index()
            {
                InitData();
                return View();
            }
    
            private void InitData()
            {
                Database.SetInitializer(new DropCreateDatabaseAlways<MyUserContext>());
                var context = new MyUserContext();
                //插入一行值
                context.Users.Add(new Users { UserName = "EF6-MySQL-Code-First" });
                context.SaveChanges();
            }
        }
    }

    运行项目,如果出现“无法检查模型兼容性,因为数据库不包含模型元数据。只能检查使用 Code First 或 Code First 迁移创建的数据库的模型兼容性。”

    在Visual Studio中对其进行迁移

    1.PM> Enable-Migrations

    2.配置Configuration的AutomaticMigrationsEnabled属性

    namespace PMS.Web.Migrations
    {
        using System;
        using System.Data.Entity;
        using System.Data.Entity.Migrations;
        using System.Linq;
    
        internal sealed class Configuration : DbMigrationsConfiguration<PMS.Web.Models.MyUserContext>
        {
            public Configuration()
            {
                AutomaticMigrationsEnabled = true;
            }
    
            protected override void Seed(PMS.Web.Models.MyUserContext context)
            {
                //  This method will be called after migrating to the latest version.
    
                //  You can use the DbSet<T>.AddOrUpdate() helper extension method
                //  to avoid creating duplicate seed data. E.g.
                //
                //    context.People.AddOrUpdate(
                //      p => p.FullName,
                //      new Person { FullName = "Andrew Peters" },
                //      new Person { FullName = "Brice Lambson" },
                //      new Person { FullName = "Rowan Miller" }
                //    );
                //
            }
        }
    }

    3.PM> Update-Database -Force

    重新运行项目。此时已经可以正常运行

  • 相关阅读:
    Azure 虚拟机安全加固整理
    AzureARM 使用 powershell 扩容系统磁盘大小
    Azure Linux 云主机使用Root超级用户登录
    Open edX 配置 O365 SMTP
    powershell 根据错误GUID查寻错误详情
    azure 创建redhat镜像帮助
    Azure Powershell blob中指定的vhd创建虚拟机
    Azure Powershell 获取可用镜像 PublisherName,Offer,Skus,Version
    Power BI 连接到 Azure 账单,自动生成报表,可刷新
    Azure powershell 获取 vmSize 可用列表的命令
  • 原文地址:https://www.cnblogs.com/sucessing/p/5345933.html
Copyright © 2011-2022 走看看