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

两个Razor Pages应用能否共享同一数据库并采用Code First模式?

问题解答

1. 能否构建第二个Razor Pages应用共享原应用的数据库与模型?

完全可以。只要在第二个Razor Pages应用中配置与原应用完全一致的数据库连接字符串,就能直接访问同一个数据库。模型层面,你可以复用原应用的模型类(无论是复制还是通过引用方式),实现数据的读写操作。

2. 修改模型时是否需要在两个应用间来回复制?

如果只是简单复制模型类到第二个应用,每次修改模型都得两边同步,不仅麻烦,还极易出现遗漏或不一致的情况,这显然不是合理的做法。

3. 更优方案

最靠谱的方式是抽离核心模型与数据上下文到独立类库,具体步骤如下:

  • 创建一个.NET类库项目(比如命名为ProjectPlanning.Core),把原应用中的项目模型类、DbContext(数据库上下文)以及相关数据访问逻辑全部迁移到这个类库中。
  • 让原长期规划应用和新的第二个Razor Pages应用都通过项目引用(同一解决方案下)或NuGet引用这个类库。
  • 两个应用各自在Program.cs中注册DbContext,使用相同的连接字符串:
    builder.Services.AddDbContext<ProjectDbContext>(options =>
        options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));
    
  • 所有数据库迁移操作统一在一个应用中执行(比如原应用),避免两个应用各自生成迁移脚本导致数据库结构冲突。

这种方式下,修改模型只需在类库中操作一次,两个应用会自动同步更新,彻底解决来回复制的问题,同时新应用也能只按需使用核心模型和数据访问能力,无需引入原应用的页面等无关代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 10:15:26