专栏首页sofu456entity framework数据库映射

entity framework数据库映射

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

三种开发模式

ORM框架的对象关系映射

  • DataBase First (数据库优先,还没写代码)
  • Model First (模型优先edmx文件,数据库表未创建)
  • Code First (代码优先)

Sql Server安装:EntityFramework Mysql安装:MySql.Data.Entity

数据库优先

选择ADO.NET实体对象,

  • 来自数据库的EF设计器 导入数据库结构

模型优先

选择ADO.NET实体对象,创建edmx文件,需要安装vs数据库连接插件或者odbc驱动

  • 空EF设计器

右键菜单中,验证有无错误,连接数据库生成表数据

添加代码生成项,创建模型DBContext代码

using (Model1Container mc = new Model1Container())
{
     mc.BlogsSet.Add(new Blogs()
     {
         Id = 1,
         Name = "hello",
         Title = "world"
     });
     mc.SaveChanges();
 }    

代码优先

选择ADO.NET实体对象,

  • 空的Code first设计器 或者自己添加cs代码
	public class Blog
    {
        public int BlogId { get; set; }
        public string Title { get; set; }
        public DateTime CreateDate { get; set; }
    }
    [DbConfigurationType(typeof(MySqlEFConfiguration))]
    public class BlogEntities : DbContext
    {
    	public BlogEntities():base("name=mysqltest") { }     //mysqltest是app.config中的key name
        public DbSet<Blog> Blogs { get; set; }
    }

创建数据库

	using(BlogEntities blog = new BlogEntities())
    {
        blog.Blogs.Add(new Blog() {
            BlogId = 1,
            Title = "test",
            CreateDate = DateTime.Now
        });
        blog.SaveChanges();
    }

nuget添加EntityFramework后,配置文件App.config文件中配置数据库连接

    <entityFramework>
        <providers>
            <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/>
        </providers>
    </entityFramework>

添加连接字符串

<connectionStrings>
    <add name="mysqltest" connectionString="Data Source=localhost;port=3306;Initial Catalog=mysql;user id=root;password=root;" providerName="MySql.Data.MySqlClient" />
</connectionStrings>

ef自动创建数据库和表,在已有数据库中需要创建结构一致的表(这个操作和code first违背)

参考

https://www.cnblogs.com/1312mn/p/9239419.html

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • dotnet bitmap

    sofu456
  • autocad.net

    autocad.net通过组件方式访问autocad,所以需要和autocad通信,不能单独exe启动 参考:https://forums.autodesk....

    sofu456
  • 软件搬家

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    sofu456
  • 为什么阿里代码规约要求避免使用 Apache BeanUtils 进行属性复制

    有一次开发过程中,刚好看到小伙伴在调用 set 方法,将数据库中查询出来的 Po 对象的属性拷贝到 Vo 对象中,类似这样:

    JAVA葵花宝典
  • 基于SQL Server数据库搭建主从复制实现读写分离实战演练

    在《.NET Core基于SQL Server数据库实现读写分离实战演练》分享课程中已经演示过。

    跟着阿笨一起玩NET
  • 《深入实践Spring Boot》阅读笔记之一:基础应用开发

    上上篇「1718总结与计划」中提到,18年要对部分项目拆分,进行服务化,并对代码进行重构。公司技术委员会也推荐使用spring boot,之前在各个技术网站中也...

    情情说
  • Scrapy框架-爬虫程序相关属性和方法汇总

    如果不写start_requests方法:他会把start_urls的两个网址都发送过去

    小小咸鱼YwY
  • 互联网时代,如何成为优秀的web前端开发者?

    互联网技术发展日新月异,成为成为一名优秀的web前端开发者,需要不断学习,关注行业前沿。 本经验贴分享如何成为优秀web前端开发者的经验,供读者参考。 步骤1 ...

    企鹅号小编
  • 使用SQL Server Management Studio 2008 将数据库里的数据导成脚本

    之前很羡慕MySQL 有这样的工具可以把数据库里的数据导成脚本,SQL Server 2005 的时候大牛Pinal Dave写了个Database Publi...

    张善友
  • RavenDb学习(八)高级特性上半部分

    1、事务支持 别的关系型数据库和RavenDb一起使用 using (var transaction = new TransactionScope()) { ...

    岑玉海

扫码关注云+社区

领取腾讯云代金券