• EntityFramework之创建数据库及基本操作(一)


    那时学EF的时候还没有Code First,只有DB First,生成的是一个EDMX文件,Code First则没有这文件,下面直接上代码吧

    数据库创建以及建表

    1、首先我们新建一个新项目,使用Nuget搜索EntityFramework,如果想找到对应的中文包,可以搜索EntityFramework.zh-Hans即可。

         本人是话是直接搜索EntityFramework.zh-Hans,这样会自动把中文包和类库一起安装,比较方便。

     

    2、接着建model实体

    1     public class Product
    2     {
    3         public int Id { get; set; }
    4         public string Name { get; set; }
    5         public string Description { get; set; }
    6     }

     3、创建一个EntityContext并继承自DbContext

     1     public class EntityContext : DbContext
     2     {
     3         public EntityContext()
     4             : base("name=DBConnectionString")
     5         {
     6 
     7         }
     8 
     9         public DbSet<Product> Product { get; set; }
    10 
    11         protected override void OnModelCreating(DbModelBuilder modelBuilder)
    12         {
    13             //不使用modelBuilder.Configurations.AddFromAssembly方法则需要逐个添加,如果数量多的话比较麻烦
    14             //modelBuilder.Configurations.Add(new OneToMany.Map.ProductMap());
    15             //此方法可以将当前程序集下所有继承了ComplexTypeConfiguration、EntityTypeConfiguration类型的类添加到注册器
    16             modelBuilder.Configurations.AddFromAssembly(Assembly.GetExecutingAssembly());
    17             base.OnModelCreating(modelBuilder);
    18         }
    19     }

     4、在web.config文件中添加数据库连接字符串

    1 <connectionStrings>
    2     <add name="DBConnectionString" connectionString="Data Source=.;Initial Catalog=BasicOpt;Integrated Security=true" providerName="System.Data.SqlClient" />
    3 </connectionStrings>

     5、接着创建实体映射

     1     public class ProductMap : EntityTypeConfiguration<Product>
     2     {
     3         public ProductMap()
     4         {
     5             ToTable("Product"); //指定表明
     6             HasKey(p => p.Id);  //指定主键
     7             //指定Name字段在数据库中列名为DBName、长度500、非空,其他的话可以自己试下
     8             Property(p => p.Name).HasColumnName("DBName").HasMaxLength(500).IsRequired();
     9         }
    10     }

     6、我们写一个新增实体的操作,让Code First生成数据库

    1     EntityContext db = new EntityContext();
    2     var product = new Models.Product() { Name = "电磁炉", Description = "电器" };
    3     db.Set<Product>().Add(product);
    4     db.SaveChanges();

    我们打开数据库管理工具看下是否有创建数据库以及新增数据

    这样几步操作就完成了一个基本的例子,往后文章将介绍下一对一、一对多、多对多关系代码如何编写,以及数据库迁移操作。

  • 相关阅读:
    jqmodal遮罩层的实现
    让Editplus和SVN集成
    asp.net很有用的字符串操作类
    TCP socket编程
    Adroid: ProgressBar 的使用
    在想的事情......
    I'm new to CNBlogs!
    压力
    开心工作
    feature
  • 原文地址:https://www.cnblogs.com/zuqing/p/5452274.html
Copyright © 2020-2023  润新知