zoukankan      html  css  js  c++  java
  • 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());
    }

      

  • 相关阅读:
    Account group in ERP and its mapping relationship with CRM partner group
    错误消息Number not in interval XXX when downloading
    错误消息Form of address 0001 not designated for organization
    Algorithm类介绍(core)
    梯度下降与随机梯度下降
    反思
    绘图: matplotlib核心剖析
    ORB
    SIFT
    Harris角点
  • 原文地址:https://www.cnblogs.com/answercard/p/5187501.html
Copyright © 2011-2022 走看看