DbContextHelper.cs

来源:互联网 发布:plc显示屏编程软件 编辑:程序博客网 时间:2024/06/06 11:00
namespace Toolkit{    using System.Data.Entity;    public enum CodeFirstInitWay    {        CreateDatabaseIfNotExists,        DropCreateDatabaseAlways,        DropCreateDatabaseIfModelChanges    }    public static class DbContextHelper    {        /// <summary>        /// 以 Code First 方式初始化        /// </summary>        /// <param name="context">数据上下文</param>        /// <param name="initWay">初始化方式</param>        public static T CodeFirstInit<T>(T context, CodeFirstInitWay initWay) where T : DbContext        {            context.Database.CreateIfNotExists();            switch (initWay)            {                case CodeFirstInitWay.CreateDatabaseIfNotExists:                    new CreateDatabaseIfNotExists<T>().InitializeDatabase(context);                    break;                case CodeFirstInitWay.DropCreateDatabaseAlways:                    new DropCreateDatabaseAlways<T>().InitializeDatabase(context);                    break;                case CodeFirstInitWay.DropCreateDatabaseIfModelChanges:                    new DropCreateDatabaseIfModelChanges<T>().InitializeDatabase(context);                    break;            }            return context;        }        /// <summary>        /// 检查数据库是否存在        /// </summary>        /// <param name="context">数据上下文</param>        /// <returns>存在:true,不存在:false</returns>        public static bool IsExists<T>(T context) where T : DbContext        {            return Database.Exists(context.Database.Connection);        }    }}