You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET MVC中EF框架能否同时使用Code First与DB First模式

EF Code First项目同时使用DB First的方案解答

结论

完全可以在同一个项目中同时使用两种模式,二者的上下文实例互相独立,不会干扰原有Code First模式的正常运行,完全适配你当前只读查询外部数据库的需求。

具体实现可选方案

  • 方案1:直接使用DB First模式生成独立上下文
    针对外部数据库的连接字符串单独走DB First生成流程,创建独立的ExternalReadOnlyDbContext上下文类和对应表的实体文件,不需要修改原有Code First的任何业务代码。为了适配只读需求,可以在该上下文的构造函数中添加代码Database.SetInitializer<ExternalReadOnlyDbContext>(null);,关闭EF针对该上下文的迁移校验、数据库结构修改逻辑,避免误操作影响外部数据库。
  • 方案2:轻量化适配,无需引入DB First的edmx文件
    如果你只需要查询外部库的少数表,可以直接手写对应表的实体类,再单独写一个轻量的Code First风格的只读上下文,同样关闭数据库初始化器,只编写查询逻辑即可,这种方式更简洁,不需要依赖DB First的自动生成流程。

注意事项

两个上下文需要配置各自独立的连接字符串,不要跨上下文做实体关联操作,原有Code First的迁移、业务写入逻辑完全不会受到任何影响。
因为你仅对外部数据库做查询操作,无论选择哪种方案都不需要配置外部库的迁移逻辑,不会改动外部数据库的任何结构,风险极低。

内容的提问来源于stack exchange,提问作者AhmadAGH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 12:09:03