首页 > 其他分享 >EntityFramework Core Scaffolding

EntityFramework Core Scaffolding

时间:2024-04-04 10:11:22浏览次数:30  
标签:Core Scaffolding 代码 EntityFramework dotnet using 数据库

EntityFramework Code First 是从代码生成数据库,叫做数据迁移。EntityFramework Database First 是从数据库生成代码,叫做脚手架(Scaffold)。本文介绍脚手架入门。

用数据库图形界面(如SQLiteStudio)生成数据库模式,插入数据等,已经发展成熟,标准化了,非常直观,即使是生手也很容易掌握。所以推荐先构建数据库,用脚手架生成代码。不要使用数据迁移从代码生成数据库。

新建C#项目,安装NuGet包:

Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.Sqlite

打开命令行执行:

# 安装 Entity Framework Core 工具
dotnet tool install --global dotnet-ef
 
# 更新 Entity Framework Core 工具
dotnet tool update --global dotnet-ef

安装VS插件:EntityFramework Core Scaffolding,他是一个 VS tool to run the dotnet ef dbcontext scaffold command

这个插件只是方便参数记忆,你也可以直接使用命令行,请搜索微软帮助,写的很详细。

设置连接字符串,提供程序,其他可保持默认。如果生成代码不满意,可以修改参数后重新设置。

{
  "DataSource": "Data Source=flange.db",
  "Provider": "Microsoft.EntityFrameworkCore.Sqlite",
 ...
}

上下文类可以将手写代码放在单独的偏类文件中,将来自动生成代码不会覆盖手写文件。

我们经常会配置连接字符串,自动代码不会生成,我们就将他放到自动代码不同的文件名称,单独文件中,不会被覆盖。如自动生成的上下文类文件名是FlangeDbContext.cs,你可以添加一个FlangeDbContext.OnConfiguring.cs文件到项目根位置:


using System;
using System.IO;

using Microsoft.EntityFrameworkCore;

using UnquotedJson;

public partial class FlangeDbContext : DbContext
{
    public FlangeDbContext()
    {
        var path = Path.Combine(Environment.CurrentDirectory, "app.config");
        //var text = File.ReadAllText(path);
        //var json = Json.parse.Invoke(text);
        //var connectionString = json["connectionString"].stringText;
        this.ConnectionString = "Data Source=D:/Application Data/flange.db";

    }
    public string ConnectionString { get; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        base.OnConfiguring(optionsBuilder);
        if (optionsBuilder != null) {
            optionsBuilder.UseSqlite(this.ConnectionString);
        }
    }
}

标签:Core,Scaffolding,代码,EntityFramework,dotnet,using,数据库
From: https://www.cnblogs.com/cuishengli/p/18113943

相关文章

  • EF Core设计时 DbContext 创建
    设计时DbContext创建本文内容从应用程序服务使用不带参数的构造函数从设计时工厂Args某些EFCoreTools命令(例如Migrations命令)要求在设计时创建派生的DbContext实例,以便收集有关应用程序实体类型及其如何映射到数据库架构的详细信息。在大多数情况下,由此创建的DbConte......
  • EF Core异步编程
    异步编程本文内容异步LINQ运算符客户端异步LINQ运算符当在数据库中执行查询时,异步操作可避免阻止线程。对于在富客户端应用程序中保持响应式UI,异步操作很重要,还可以增加Web应用程序中的吞吐量,从而释放线程来为Web应用程序中的其他请求提供服务。按照.NET标准,EFCore......
  • EF Core 高效更新
    高效更新本文内容批处理在相关情况下使用ExecuteUpdate和ExecuteDelete批处理EFCore通过在一次往返中自动将所有更新批处理在一起,帮助最大限度地减少往返。考虑以下情况:C#复制varblog=context.Blogs.Single(b=>b.Url=="http://someblog.microsoft.com");blog.Url......
  • 【Redis】.Net Core 面试破冰
    目录1.Redis简介2.使用场景3.C#具体使用介绍(Nuget)StackExchange.RedisFreeRedisNewLife.RedisServiceStack.Redis(收费)4.Redis常用面试问题以及回答5.建议及经验分享建议Redis经验分享ShareFlow1.Redis简介Redis是一个开源的使用ANSIC语言编写、遵守BSD协议、支持......
  • asp.net core 获取服务小计
    首先,定义服务:publicinterfaceIUserService{stringGetName();voidSetName(stringname);}publicclassUserService:IUserService{privatestringsss;publicstringGetName(){if(string.IsNullOrEmpty(sss))......
  • 基于donetcore/CAP实现分布式事务一致性
    官网:https://cap.dotnetcore.xyz相关介绍CAP是一个EventBus,同时也是一个在微服务或者SOA系统中解决分布式事务问题的一个框架。它有助于创建可扩展,可靠并且易于更改的微服务系统。在微软的 eShop 微服务示例项目中,推荐使用CAP作为生产环境可用的EventBus。什么是Event......
  • 记录解决QT环境变量、qwt环境搭建、cannot load QT5core.dll错误、TreeWidget与TabWid
    一、配置QT环境变量:依次打开:设置->系统->关于->高级系统设置->环境变量->系统变量(s)->Path->编辑,将QT安装目录中以下文件路径复制粘贴至Path中:D:\BaiDuWangPan\SoftWare\QT_551\5.5\mingw492_32\binD:\BaiDuWangPan\SoftWare\QT_551\Tools\mingw492_32\bin相关解决方法可借鉴......
  • (保姆级)webserver的创建、部署、调用(使用.net core web+.net core Api+Linxu实现)
    ​版本为Vs2022框架.net6一、webserver的创建参考链接:netcore建立webservice项目_.netcorewebservice-CSDN博客该参考链接作者使用的是.net5,这边是.net6在框架上还是有点小区别的1、使用.netcoreweb创建web服务 2、通过NuGet安装SoapCore 3、创建业务服务文......
  • ASP.NET Core 使用 pdfjs 加载 实时水印 base64 编码的 PDF
    先下载pdfjs:https://github.com/mozilla/pdf.js目前最新版本是4.0.379把需要的文件放到项目下面,由于最新的pdfjs使用的mjs,看情况可以加下MIME类型:varprovider=newFileExtensionContentTypeProvider();provider.Mappings[".mjs"]="application/javascript";provider......
  • 界面控件DevExtreme JS & ASP.NET Core 2024年度产品规划预览(一)
    在本文中我们将介绍今年即将发布的v24.1附带的主要特性,这些特性既适用于DevExtreme JavaScript(Angular、React、Vue、jQuery),也适用于基于DevExtreme的ASP.NETMVC/Core控件。注意:本文中列出的功能和特性说明官方当前/预计的发展计划,此信息仅供参考之用,其中列出的功能/产品可......