如果可以直接在数据库中运行SQL,那么运行EF迁移的重点是什么?

问题描述 投票:1回答:1

How to create View (SQL) from Entity Framework in ABP Framework

由于声誉,不允许发表评论。只是尝试获取有关将数据库连接到实体框架的更多信息,而无需切换到代码优先的开发风格。查看所选答案的回复(他告诉OP基本上他会在数据库中执行相同的操作,但是使用EF,然后添加额外的步骤,其中EF“...忽略......”之前的说明......

我想直接在SQL中创建表和设计数据库,并让csharp库只读/写表值(有点像dapper函数,它不是替换你的数据库,只是在它旁边工作)。

本教程不讨论如何将数据库与项目集成。它可以是brushes over the subjectignores it completely,也可以讨论如何替换它。

我不想做任何EF migrations(我不想/每次我决定运行,复制或转移项目时都需要/需要销毁/创建数据库)。任何和所有数据库回溯(备份/恢复)都应该通过SQL(在我的工作环境中)完成。


只是为了清楚我正在努力学习的内容:专门研究数据库管理(构建数据库模式,管理和监视数据,以及已建立数据的现有数据库)的人如何连接到项目以获取数据(再次,具体而言引用DapperQuery功能)。

我想整合和设计微服务,有些可能共享相同的数据库连接或依赖另一个。但我只是想在一个干净的强类型类实体中读取数据,如果必须的话,可能会在其他地方处理插入/更新。

我更喜欢使用Dapper而不是EF,但是ABP与EF的设计非常紧密地结合在一起,避免使用它比处理它更令人头疼。

entity-framework aspnetboilerplate asp.net-boilerplate
1个回答
0
投票

您应该能够以与使用DB优先配置的任何其他项目相同的方式在ABP下映射EF。

我用于EF的一致方法:(DB-First)

  1. 定义实体以匹配表/视图结构。
  2. 根据需要,使用关联的EntityTypeConfiguration<TEntity>ToTable()和任何HasMany / HasRequired / HasOptional定义扩展HasKey()的配置类。
  3. 在DbContext.OnModelCreating:modelBuilder.Configurations.AddFromAssembly(GetType().Assembly);中加载所有实体配置。 (假设DbContext与模型/配置在同一个程序集中替换GetType().Assembly指向实体程序集。
  4. 关闭迁移。在DbContext构造函数中:Database.SetInitializer<MyDbContext>(null);

EF提供的不仅仅是将表映射到类。通过映射实体之间的关系,EF可以帮助生成优化查询,以便跨这些相关实体检索数据。这可以让您在不返回不必要的数据的情况下展平数据结构,替换对视图的需求,并且通常可以减少从数据库到应用程序服务器的数据量。

© www.soinside.com 2019 - 2024. All rights reserved.