6K Star 11.8K Fork 4K

GVPdotNET China / Furion

 / 详情

如何实现 cli 不执行某些表的迁移,web 请求可以正常操作呢?

已完成
创建于  
2021-05-17 18:00

特别说明:如果 Issue 报告为问题且开发成员回复确认问题之后但三天内都不能得到反馈,则视为无效Issue。

Furion 版本号

哪个版本号?
2.3.9

Web 项目类型

  • WebApi
  • Mvc
  • Razor Pages
  • Blazor Server

描述你的问题

如果以前的数据库已经有了某一张表比如Table1,然后现在基于此数据库做开发,我可能要建这一张实体Table1,可是我不想在Code First中去创建Table,后面仓储也要用private readonly IRepository _rep;

[SkipScan] 我加了这个特性,没有通过CodeFirst生成表,可是这个表跟Context上下文没有关联
需要手动配置 DbContext 的 OnModelCreating
//先调用父类方法
base.OnModelCreating(modelBuilder);

if (App.HttpContext != null)
{
//添加实体类中带 [NonAutomatic]或[SkipScan]特性的Entity
modelBuilder.Entity<nO_ORD>();
modelBuilder.Entity<nT_MANIFEST>();
}

发生了什么?
在CodeFirst执行add-migration 的时候是正常的没有问题
在F5运行起来后有时候App.HttpContext == null 就没有执行
modelBuilder.Entity<nO_ORD>();
modelBuilder.Entity<nT_MANIFEST>();
导致接口中报错,意思就是跟上下文没有关联

异常堆栈信息

异常堆栈是什么?
Cannot create a DbSet for 'nO_ORD' because this type is not included in the model for the context.

代码或代码仓库

什么代码导致?
App.HttpContext == null

数据库信息

  • [] Sqlite
  • SqlServer
  • Mysql
  • Oracle
  • PGSql
  • Firebird
  • Cosmos

期待结果

期待的结果是?
麻烦老大想想如何解决这个问题,谢谢

评论 (4)

ぺ瑾ζ微澜 创建了任务
ぺ瑾ζ微澜 关联仓库设置为dotNET China/Furion
展开全部操作日志

试试 App.HttpContext!=null || App.WebHostEnvironment!=null 结合呢?

百小僧 修改了描述
百小僧 修改了标题
974299 monksoul 1578937227 百小僧 拥有者
回复 百小僧 拥有者

目前暂时使用以上方法解决问题,待观察。

百小僧 任务状态待办的 修改为进行中
百小僧 负责人设置为百小僧
百小僧 添加了
 
疑问
标签
百小僧 添加了
 
无法实现
标签
百小僧 里程碑设置为Furion 2021
百小僧 关联分支设置为master
百小僧 计划截止日期设置为2021-05-18
百小僧 计划开始日期设置为2021-05-18

测试没问题了,如果还有什么边界情况再重新开贴。

百小僧 任务状态进行中 修改为已完成
百小僧 关联分支master 修改为未关联

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(2)
974299 monksoul 1578937227
C#
1
https://gitee.com/dotnetchina/Furion.git
git@gitee.com:dotnetchina/Furion.git
dotnetchina
Furion
Furion

搜索帮助