• EntityFramework简介


    1.数据库链接配置
    官方文档: https://msdn.microsoft.com/en-us/data/jj556606
      1.1通过配置文件配置(App.config或Web.config), 这种配置方式也有两种形式, 一个是配置connectionStrings节, 另一个是配置entityFramework节
      1.2通过SqlConnectionFactory配置
      1.3通过DBContext构造函数配置

    2.创建数据的策略
      2.1当数据库不存在时创建数据库(CreateDatabaseIfNotExists), 默认策略

      2.2当数据模型改变时, 先删除数据库, 在重新创建数据库(DropCreateDatabaseWhenModelChanges)

      2.3每次都删除原数据库, 创建新的数据库(DropCreateDatabaseAlways)

      2.4不对数据库进行任何删除,创建操作(null)

    3.实体_表的映射配置
      如果实体和表都是单独创建的, 那我们需要实体和表之间的映射关系. 有两种实现方式
      3.1 通过属性标注(Attribute)  

    [Table("Product", Schema = "dbo")]
    public class Product
    {
        [Column("ProductID")]
        public int ProductID { get; set; }
    
        [MaxLength(100)]
        [Required, Column("ProductName")]
        public string ProductName { get; set; }
    
         [Column("UnitPrice", TypeName = "MONEY")]
         public decimal UnitPrice { get; set; }
    }

      3.2 通过Fluent API方式, 分两种形式, 见代码1和代码2

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Product>().HasKey(t => t.ProductID);
        modelBuilder.Entity<Product>().Property(t => t.ProductID)
            .HasColumnName("ProductID")
            .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
    }
        public class ProductMap : EntityTypeConfiguration<Product>
        {
            public ProductMap()
            {
                // Primary Key
                this.HasKey(t => t.ProductID);
    
                // Properties
                this.Property(t => t.ProductID)
                    .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
                this.Property(t => t.ProductName)
                    .IsRequired()
                    .HasMaxLength(100);
    
                // Table & Column Mappings
                this.ToTable("Product");
                this.Property(t => t.ProductID).HasColumnName("ProductID");
                this.Property(t => t.ProductName).HasColumnName("ProductName");
                this.Property(t => t.UnitPrice)
                    .HasColumnName("UnitPrice")
                    .HasPrecision(18, 2);
            }
        }
    
    //添加配置信息
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Configurations.Add(new ProductMap());
    }

      

  • 相关阅读:
    gflags命令行参数解析
    Caffe2 Detectron安装错误记录
    geeksforgeeks-Array-Rotation and deletion
    geeksforgeeks-Array-Rotate and delete
    case7 淋巴瘤子类分类实验记录
    FPN-Feature Pyramid Networks for Object Detection
    Python提示AttributeError 或者DeprecationWarning: This module was deprecated解决方法
    win10彻底永久关闭自动更新的方法
    第十三篇:python之异常处理
    第十二篇:python中的面向对象
  • 原文地址:https://www.cnblogs.com/answercard/p/5187501.html
Copyright © 2020-2023  润新知