zoukankan      html  css  js  c++  java
  • ef601

    1、简介

    1) 架构介绍

    2、补充

    1)模型设计器界面右键可调出模型浏览器

    3、安装EF

    1)通过Nuget包管理工具进行下载

    打开Nuget包管理工具,搜索下载EntityFramework

    将在引用处引入:

    System.EntityFramework,

    System.EntityFramework.SqlServer

    2)EF5.0与6.x的内容分布:

    4.db First

    开发前必须有完整的数据库设计作为依据

    确定所生成对象名称的单复数形式 是否勾选

    如果勾选,所生成的数据库操作对象都会带复数

    1)使用dbFirst的设计流程

    ①首先设置好数据库,包括关联,外键等等

    ②包管理工具中安装EF

    ③项目右键添加——数据——ADO.NET实体数据模型——从数据库生成

    根据提示进行操作,选择所有需要的表

    ④系统生成.context.cs文件,内容即为EF数据操作类

    2)使用EF数据库操作类操作数据库

    ①向表中插入数据

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace DbFirst1
    {
        class Program
        {
            static void Main(string[] args)
            {
                using (EFDemoEntities db = new EFDemoEntities())
                {
                    db.Student.Add(new Student()
                    {
                        StuName="Michael",
                        EnterDate=DateTime.Now,
                        ClassInfo_Id=2
    
                    });
                    db.SaveChanges();
                }
    
                Console.WriteLine("完成动作");
                Console.ReadLine();
            }
        }
    }

    注意:由于外键约束,如果不存在相应的班级id,则会报错,插入失败

    5、model first

    分局model生成数据库,与sqlserver可视化类视图相似

    1)使用方式

    ①安装EF

    ②项目右键添加——数据——ADO.NET实体数据模型——空

    ③在可视化工具中编辑:空白处右键新增实体并为其设置属性,规定约束

    ④添加关联

    ⑤映射到数据库:

    空白处右键——根据模型生成数据库

    按照提示操作,系统将生成实体类同时生成一段创建数据库的代码

    ⑥执行所生成的sql文件

    2)插入数据

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ModelFisrt1
    {
        class Program
        {
            static void Main(string[] args)
            {
                using (Model1Container container = new Model1Container())
                {
                    container.Category.Add(new Category()
                    {
                        CateName="Phone"
                        
                    });
                    container.SaveChanges();
                }
                Console.WriteLine("okok");
                Console.Read();
            }
        }
    }

    6.Code First

    先写代码生成实体,再根据实体生成数据库

    1)创建方式

    ①安装EF

    ②项目右键添加——数据——ADO.NET实体数据模型——空的code first模型

    ③在弹出的 model文件中完成数据库操作类代码的编写

    namespace CodeFirst1
    {
        using System;
        using System.ComponentModel.DataAnnotations;
        using System.Data.Entity;
        using System.Linq;
    
        public class DemoModel : DbContext
        {
            //您的上下文已配置为从您的应用程序的配置文件(App.config 或 Web.config)
            //使用“DemoModel”连接字符串。默认情况下,此连接字符串针对您的 LocalDb 实例上的
            //“CodeFirst1.DemoModel”数据库。
            // 
            //如果您想要针对其他数据库和/或数据库提供程序,请在应用程序配置文件中修改“DemoModel”
            //连接字符串。
            public DemoModel()
                : base("name=DemoModel")
            {
            }
            protected override void OnModelCreating(DbModelBuilder modelBuilder)
            {
                // 改变一些配置
                base.OnModelCreating(modelBuilder);
            }
    
            //为您要在模型中包含的每种实体类型都添加 DbSet。有关配置和使用 Code First  模型
            //的详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=390109
    
             public virtual DbSet<MyEntity> MyEntities { get; set; }
        }
    
        public class MyEntity
        { 
            [Key]
            public int Id { get; set; }
            public string Name { get; set; }
        }
    
    
        //public class MyEntity
        //{
        //    public int Id { get; set; }
        //    public string Name { get; set; }
        //}
    }

    ④App.Config修改连接字符串

      <connectionStrings>
        <add name="DemoModel" connectionString="data source=127.0.0.1;initial catalog=CodeFirst1.DemoModel;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
      </connectionStrings>

    ⑤书写主程序代码

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace CodeFirst1
    {
        class Program
        {
            static void Main(string[] args)
            {
                using (DemoModel db= new DemoModel())
                {
                    db.MyEntities.Add(new MyEntity()
                    {
                        Name = "John"
    
                    });
                    db.SaveChanges();
                }
                Console.WriteLine("ok");
                Console.ReadLine();
            }
        }
    }

    执行上面代码后,系统自动根据连接字符串创建一个新的数据库

  • 相关阅读:
    DB2 中like的通配符以及escape关键字定义转义字符的使用
    Java编译后产生class文件的命名规则
    在Servlet的GenericServlet类中为什么有两个init()方法
    Java Web开发笔记
    EL表达式
    将NSString转换编码集变为GBK或GB2312
    转,ios开源程序集
    整理 被appstore 拒绝审核通过的原因
    在程序中如何把两张图片合成为一张图片
    object c 操作date类型
  • 原文地址:https://www.cnblogs.com/Tanqurey/p/12466232.html
Copyright © 2011-2022 走看看