EF编程三种方式

 

 

1.DataBase First

2.Model First

3.Code First

这三种编程方式

DataBase First 就是数据库优先,数据库先建立好表 然后EF根据数据库表生成实体模型,这种方式使用简单,但不适合大型项目使用,这是为什么呢?因为 假设数据库表经常变动

更新数据库有时候更新失败,需要删除重写引入EF 比较麻烦,并且如果项目大了 其实  DataBase First这种方式 其实就是对edmx文件的操作,如果人员非常多一起对edmx进行操作会造成混乱不方便管理

Model First呢 其实和DataBase First是差不多 他是模型优先,也就是在EF设计器,设计好数据库 在通过EF生成sql生成相对应的表,如果大项目最终还要多人操作edmx 会造成混乱不好处理

 

Code First 也就是代码优先 code first 又分为2种模式

第一种方式

第一步 通过nuget下载EF

第二部 配置文件写入sql连接字符串 控制台做演示所以是appconfig如果是web程序就是webconfig

<connectionStrings>
<add name="CodeFirstDb" connectionString="Data Source=.;Database=PBB;UID=sa;PWD=sa1234;" providerName="System.Data.SqlClient"></add>

</connectionStrings>

第三步定义一好实体

Table特性标签用于实体字段和数据库字段映射可写可不写如果实体的字段不想跟数据库字段就可以用这个特性标签映射

 

 第四部 定义一个类继承Dbcontext我们就可以使用EF了

 另外一种模式

1.定义好实体

2.定义实体的配置类

3.定义类继承Dbcontext

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.Entity;
using System.Reflection;

namespace Fluent
{
   public class MyEF:DbContext
    {
        public MyEF():base("name=CodeFirstDb")
        {
        

        }
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            Assembly asm = Assembly.GetExecutingAssembly();
            base.OnModelCreating(modelBuilder);
            modelBuilder.Configurations.AddFromAssembly(asm);

        }
        public DbSet< Menu> Menu { get; set; }
    }
}

 

posted @ 2018-04-05 17:44  NET木下  阅读(1285)  评论(0编辑  收藏  举报