zoukankan      html  css  js  c++  java
  • EF启程--概念理解(数据库连接)

    简介:Entity Framework 是一种支持 .NET 开发人员使用 .NET 对象处理数据库的对象关系映射程序 (O/RM)。 它不要求提供开发人员通常需要编写的大部分数据访问代码。

    其中有EFCore和EF6(最新版本)。都是虚的详细的看管方文档有详细说明:https://docs.microsoft.com/zh-cn/ef/#pivot=entityfmwk&panel=entityfmwk1

    下面分开介绍二者之间,的开始准备步骤。

    1.Entity Framework (EF) Core 是轻量化、可扩展、开源和跨平台版的常用 Entity Framework 数据访问技术

    EF Core 是一个 .NET Standard 2.0 库,需要项目 .NET Standard 2.0 支持。

    使用 工具- NuGet-程序包管理器-执行命令导入所需NuGet --Visual Studio NuGet 包管理器控制台)

    (1)用的 SQL Server,使用以下 .NET Core CLI 命令来安装或更新 EF Core SQL Server 提供程序:

    Install-Package Microsoft.EntityFrameworkCore.SqlServer

    (2)连接mysql数据库

    Install-Package MySql.Data.EntityFrameworkCore
    或者使用第三方:
    Install-Package Pomelo.EntityFrameworkCore.MySql

    2.数据库连接

    (1)配置文件,进行配置

    {
      "Logging": {
        "LogLevel": {
          "Default": "Warning"
        }
      },
      "DBSetting": {
        "ConnectString": "server=127.0.0.1;port=3306;UserId=test;password=root;Database=ding"
      },//mysql本地连接
      "AllowedHosts": "*"
    }
    //UseSqlServer连接:Server=(localdb)mssqllocaldb;Database=Blogging;Integrated Security=True

    (2)连接代码

    using Microsoft.EntityFrameworkCore;
    using Microsoft.Extensions.Configuration;
    namespace DingService.Models
    {
    public partial class DingAuthorizeDb : DbContext
    {
    public DingAuthorizeDb()
    {
    }

    public DingAuthorizeDb(DbContextOptions<DingAuthorizeDb> options) : base(options) {


    }
    public virtual DbSet<UsrInfo> usrInfo { set; get; }
    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
    if (!optionsBuilder.IsConfigured)
    {
    //加载appsetting.json
    IConfiguration configuration = new ConfigurationBuilder()
    .SetBasePath(Directory.GetCurrentDirectory())
    .AddJsonFile("appsettings.json").Build();

    string connectionString = configuration["DBSetting:ConnectString"];
    #region nysql 数据库连接 由于本项目中使用的本地mysql进行项目调试。sql server暂时注释
    optionsBuilder.UseMySQL(connectionString);
    #endregion
    #region nysql 数据库连接
    // optionsBuilder.UseSqlServer(connectionString);
    #endregion
    base.OnConfiguring(optionsBuilder);
    }
    }

    }
    }

     以上供自己备忘:

    下面简述自己在从0中遇到的问题以及补足

    1.首先要分清自己想要做什么。开发过程中一直用optionsBuilder.UseSqlServer方法连接我的mysql数据库(没有注意专有方法)。在连接数据库的时候总会出现

    A network-related or instance-specific error occurred while establishing a connection to SQL Server

    大意就是无法连接sql server数据库, 现在看就已经很明显了。因为我没用(额--好像不对。是没用sql server数据库 还用optionsBuilder.UseSqlServer方法)撒币了

    没有区分mysql与sql server区别

    现在简单补充下区别:

      <1>.首先部分语法存在差别(基本语法相同)可参考:https://blog.csdn.net/qq_40985788/article/details/82717462(引用,谢谢)

      <2>.剩下的就是一些历史背景原因了。(可以百度参考)

    3.再记录下数据库连接成功后的俩异常吧

     <1>An error occurred while updating the entries. See the inner exception for details 查看model数据类型是否和数据库的数据类型是否一致

     <2>The entity type 'UsrInfo' requires a primary key to be defined.  解决方案: 查看model数据中是否没有定义[key]主键

      

    入门先记录这么多吧,后续继续学习。再更新增、删、改、查。挖掘的不深,莫怪。有个好心情很重要,希望有好见解。共同成长。

  • 相关阅读:
    两数交换不借助第三变量
    linux磁盘文件系统管理
    Fedora15设置开机进入终端模式
    快速构建Windows 8风格应用8贴靠视图
    快速构建Windows 8风格应用6GridView数据控件
    快速构建Windows 8风格应用4FlipView数据控件
    快速构建Windows 8风格应用9竖直视图
    快速构建Windows 8风格应用1开发工具安装及模拟器使用
    快速构建Windows 8风格应用5ListView数据控件
    快速构建Windows 8风格应用2创建调试应用
  • 原文地址:https://www.cnblogs.com/zhao-y/p/10906099.html
Copyright © 2011-2022 走看看