EntityFramework

Posted ACE老翟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EntityFramework相关的知识,希望对你有一定的参考价值。

实现效果:ORM方式对数据进行增删改查。

实现环境:VS2013

在项目中添加EntityFramework的nuget包。

新建context类,如下所示

base 处为数据库的连接

 public class PersonContext:DbContext
{
        public PersonContext():base("name=dblink")
        {    }
}

 在app.config文件添加链接字符串

  <connectionStrings>
    <add name="dblink"
    connectionString="Server=.; Database=EFDemo; Trusted_Connection=True;"
    providerName="System.Data.SqlClient"/>
  </connectionStrings>

创建实体类Person

 public class Person
    {
        public int PersonId { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
    }

在context中添加dbset

        public DbSet<Person> Persons { get; set; }
        public DbSet<Company > Companys { get; set; }

添加一个Initializer类,继承DropCreateDatabaseIfModelChanges

public class Initializer : DropCreateDatabaseIfModelChanges<PersonContext>
    {
        protected override void Seed(PersonContext context)
        {
            //base.Seed(context);
            
        }
    }

可以在seed方法中添加一些初始的数据~~
现在就可以做一些基本的数据库操作了~~

在service中可以做如下操作

private readonly PersonContext _context;
        public PersonService()
        {
            _context = new PersonContext();
        }
        public void InsertPerson(Person person)
        {
            //_context.Persons.Add(person);
        }

后期可以在项目添加Migration,方法是在程序包管理控制台写:Enable-Migration。会生成一个Migration的文件夹,里面包括数据库迁移文件~

以后更新表时,可以在程序包管理控制台用 update-database做数据库迁移~~
暂时整理这些~~

 

以上是关于EntityFramework的主要内容,如果未能解决你的问题,请参考以下文章

MVC 5 Scaffolder + EntityFramework+UnitOfWork Pattern 代码生成工具

EntityFramework 代码优先:设置字段顺序

EntityFramework5代码先行,如何配置不同列名的分表关系?

MiniProfiler 与 EntityFramework 6 代码优先

.NET Entity Framework(EF)使用SqlQuery直接操作SQL查询语句或者执行过程

Entity Framework 6 不适用于时态表