欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ef和mysql使用(一)

程序员文章站 2022-04-28 13:37:33
ef开发模式有3种:DateBase First(数据库优先)、Model First(模型优先)和Code First(代码优先)。这里我用的是code first 一个简单的例子: 简单介绍一下Database.SetInitializer方法 一:数据库不存在时重新创建数据库 Database ......

ef开发模式有3种:datebase first(数据库优先)、mode first(模型优先)和code first(代码优先)。这里我用的是code first 一个简单的例子:

public class bloggingcontext : dbcontext
    {
       public bloggingcontext() : base("name=testconn")
        { }
        public dbset<person> blogs { get; set; }
        public dbset<departperson> posts { get; set; }
    }
    class program
    {
        static void main(string[] args)
        {//模型改变重新创建数据库
             database.setinitializer(new dropcreatedatabaseifmodelchanges<bloggingcontext>());
            using (var db = new bloggingcontext())
            {
                person blog = new person()
                {
                    name = "zhangsan",
                    age = "29",
                    id = guid.newguid().tostring().replace("-", "")
                };
                db.blogs.add(blog);
                db.savechanges();

                foreach (var item in db.blogs)
                {
                    console.writeline("name:" + item.name);
                }
            }

            console.read();
        }

简单介绍一下database.setinitializer方法

一:数据库不存在时重新创建数据库

database.setinitializer<testcontext>(new createdatabaseifnotexists<testcontext>());
 
二:每次启动应用程序时创建数据库
 
database.setinitializer<testcontext>(new dropcreatedatabasealways<testcontext>());


三:模型更改时重新创建数据库

 
database.setinitializer<testcontext>(new dropcreatedatabaseifmodelchanges<testcontext>());


四:从不创建数据库

 
database.setinitializer<testcontext>(null);

 这对这几种方式,可以通过代码做出改动,然后调试一下观察一下数据库的变化,会理解的更透彻!