.
using ConsoleApplication42;
using System.Data.Entity;
using System.Data.Entity.ModelConfiguration.Conventions; namespace ConsoleApplication42
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity;
using System.Linq;
public class TbUser
{
public int Id { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
public string Email { get; set; }
public virtual ICollection<TbUserRole> TbUserRoles { get; set; }
}
public class TbRole
{
public int Id { get; set; }
public string RoleName { get; set; }
public string RoleDescription { get; set; }
public virtual ICollection<TbUserRole> TbUserRoles { get; set; }
}
public class TbUserRole
{
public int Id { get; set; }
public int UserId { get; set; }
public int RoleId { get; set; }
[ForeignKey("UserId")]
public virtual TbUser TbUser { get; set; }
[ForeignKey("RoleId")]
public virtual TbRole TbRole { get; set; }
}
public class stud
{ }
public class MyDbContext : DbContext
{ public MyDbContext()
: base("MyDbContext")
{ }
public IDbSet<TbUser> TbUsers { get; set; }
public IDbSet<TbRole> TbRoles { get; set; }
public IDbSet<TbUserRole> TbUserRoles { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//因为表名称默认为复数形式,这里是移除复数形式,所以为单数形式生成
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
} //public class MyEntity
//{
// public int Id { get; set; }
// public string Name { get; set; }
//}
public class Initializer : CreateDatabaseIfNotExists<MyDbContext>
{
public MyDbContext dbContext { get; set; } public Initializer()
{ }
/// <summary>
///
/// </summary>
/// <param name="initData">是否初始化数据库数据 默认不初始化表为空</param>
public void InitData(bool initData=false)
{ InitializeDatabase(dbContext); if (!initData)
return;
Seed(dbContext);
}
public override void InitializeDatabase(MyDbContext context)
{
base.InitializeDatabase(context);
}
protected override void Seed(MyDbContext context)
{
var tbUsers = new List<TbUser> {
new TbUser{UserName="张三",Password="zhangsan",Email="zhangsan@163.com"},
new TbUser{UserName="李四",Password="lisi",Email="lisi@163.com"}
};
tbUsers.ForEach(u => context.TbUsers.Add(u)); var tbRoles = new List<TbRole> {
new TbRole{RoleName="管理员",RoleDescription="管理员具有最高权限来对系统进行管理"},
new TbRole{RoleName="一般用户",RoleDescription="一般用户具有一些基本的操作权限"}
};
tbRoles.ForEach(r => context.TbRoles.Add(r));
var tbUserRole = new List<TbUserRole> {
new TbUserRole{UserId=,RoleId=},
new TbUserRole{UserId=,RoleId=},
new TbUserRole{UserId=,RoleId=}
};
tbUserRole.ForEach(ur => context.TbUserRoles.Add(ur));
context.SaveChanges();
}
}
}
.App.Config配置文件
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<sectionGroup name="spring">
<section name="context" type="Spring.Context.Support.ContextHandler, Spring.Core" />
<section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core" />
</sectionGroup>
</configSections>
<spring> <context> <!--assembly://程序集名称/文件命名空间名称/文件的名称+.xml-->
<!--注意文件必须设置为嵌入的资源-->
<resource uri="assembly://ConsoleApplication42/ConsoleApplication42.Config/BLL.xml" />
<!--<resource uri="/Config/BLL.xml"/>--> </context>
<objects xmlns="http://www.springframework.net" />
<!--必要-->
</spring>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
<entityFramework>
<contexts>
<context type="ConsoleApplication42.MyDbContext,ConsoleApplication42" disableDatabaseInitialization="false">
<databaseInitializer type="ConsoleApplication42.Initializer,ConsoleApplication42"></databaseInitializer>
</context>
</contexts>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="(localdb)Projectsv13" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
<connectionStrings>
<add name="MyDbContext" connectionString="Data Source=(localdb)\ProjectsV13;Initial Catalog=People1;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False" providerName="System.Data.SqlClient" />
</connectionStrings>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Spring.Core" publicKeyToken="65e474d141e25e07" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.1.45000" newVersion="2.0.1.45000" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
.BLL.xml
<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net"> <!--产生产品结构所需的各类风险因子,标的因子,曲线因子 start-->
<object id="dbContext" type="ConsoleApplication42.MyDbContext,ConsoleApplication42" > </object>
<object id="Initializer" type="ConsoleApplication42.Initializer,ConsoleApplication42" >
<property name="dbContext" ref="dbContext"/>
</object> </objects> .调用
using Spring.Context;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace ConsoleApplication42
{
class Program
{
static void Main(string[] args)
{
//new Initializer();
var ctx = Spring.Context.Support.ContextRegistry.GetContext();
var init =(Initializer) ctx["Initializer"];
//初始化数据库或者数据
init.InitData(true);
}
}
}

EF配置文件初始化数据库 codefirst的更多相关文章

  1. EF Core 初始化数据库的两种方法。

    使用DbContextSeed初始化数据库 添加链接字符串 // This method gets called by the runtime. Use this method to add serv ...

  2. EF初始化mysql数据库codefirst

    EF使用Code First修改生成数据库表名的方法 1. 重写OnModelCreating,去掉表名复数 System.Data.Entity.ModelConfiguration.Convent ...

  3. 5.翻译系列:EF 6中数据库的初始化(EF 6 Code-First 系列)

    原文地址:http://www.entityframeworktutorial.net/code-first/database-initialization-in-code-first.aspx EF ...

  4. EF 连接MySQL 数据库  保存中文数据后乱码问题

    EF 连接MySQL 数据库  保存中文数据后乱码问题 采用Code First 生成的数据库,MySQL数据库中,生成的表的编码格式为***** 发现这个问题后,全部手动改成UTF8(图是另一个表的 ...

  5. EF实体框架之CodeFirst四

    在EF实体框架之CodeFirst二中也提到数据库里面一般包括表.列.约束.主外键.级联操作.实体关系(E-R图).存储过程.视图.锁.事务.数据库结构更新等.前面几篇博客把表.存储过程.视图这些算是 ...

  6. EF实体框架之CodeFirst三

    前两篇博客学习了数据库映射和表映射,今天学习下数据库初始化.种子数据.EF执行sql以及执行存储过程这几个知识. 一.数据库初始化策略 数据库初始化有4种策略 策略一:数据库不存在时重新创建数据库 D ...

  7. Entity FrameWork初始化数据库的四种策略

    程序猿就是苦逼,每天还得分出一些时间去写博文.天真的很热,今天就随便写一点啦! 1.EF初始化数据库的四中策略 EF可以根据项目中的模型自动创建数据库.下面我们就分类看看Entity Framewor ...

  8. 实体框架 (EF) 入门 => 四、CodeFirst 枚举支持

    当使用 Code First 开发时,通常是从编写用来定义概念(域)模型的 .NET Framework 类开始. 插入记录没有为 Budget 赋值. 数值类型默认值为0,数据库中都为not nul ...

  9. activiti搭建(一)初始化数据库

    转载请注明源地址:http://www.cnblogs.com/lighten/p/5876681.html activiti-engine.jar包中自带了创建activiti工作流数据库表的SQL ...

随机推荐

  1. css怎么设置2个div同行,第一个固定宽度,第二个占满剩余的部分

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. Spring的常用下载地址

    第一种,简单粗暴直接 1 http://repo.springsource.org/libs-release-local/org/springframework/spring/3.2.4.RELEAS ...

  3. 01:Sysbench 基准压测 IO篇

    line:V1.1 mail: gczheng@139.com date: 2017-11-17 一.Sysench测试前准备 1.1.压测环境 配置 信息 主机 Dell PowerEdge R73 ...

  4. 关于模拟admin实现stark组件的知识点

    一. url知识 还记得include分发么?里面的参数都可以有些什么? urlconf_module本质是返回的是模块路径对象 def include(arg, namespace=None, ap ...

  5. C++四种强制转换

    C++的四种强制类型转换,所以C++不是类型安全的.分别为:static_cast , dynamic_cast , const_cast , reinterpret_cast 为什么使用C风格的强制 ...

  6. 在单板上使用WIFI网卡的固件问题

    (在单板上使用WIFI网卡的固件问题)(我的wifi网卡是RT3070) (一般买的网卡说是支持LINUX免驱的话,那么在/lib/firmware/ 下一定有相应的固件) 我将USB网卡接入UBUN ...

  7. java传递是引用的拷贝,既不是引用本身,更不是对象

    java传递是引用的拷贝,既不是引用本身,更不是对象 2008-09-16 04:27:56|  分类: Java SE|举报|字号 订阅     下载LOFTER客户端     1. 简单类型是按值 ...

  8. hibernate操作数据库时报错解决方式

    java.sql.SQLException: Parameter index out of range (28 > number of parameters, which is 27). 这个说 ...

  9. 这样学Linux基本命令,事半功倍

    命令基本格式 (1)命令提示符 如下是命令行的命令提示符,以此为例,讲解含义. 其中: root 当前登录用户名 localhost 主机名 ~ 当前所在的目录(即家目录,用户登录的初始位置) # 超 ...

  10. 02_java之数据类型和基本运算

    01变量概述 * A: 什么是变量? * a: 变量是一个内存中的小盒子(小容器),容器是什么?生活中也有很多容器,例如水杯是容器,用来装载水:你家里的大衣柜是容器,用来装载衣裤:饭盒是容器,用来装载 ...