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

Xamarin共享项目中Entity Framework现有表新增列方法咨询

Entity Framework SQLite 类库中迁移的正确操作流程

1. 项目依赖与结构检查

  • 确保类库项目为.NET 6及以上版本(.NET Core/.NET 5+均可,不建议用.NET Framework)
  • 在类库项目中安装以下NuGet包:
    Microsoft.EntityFrameworkCore
    Microsoft.EntityFrameworkCore.Sqlite
    Microsoft.EntityFrameworkCore.Tools
  • 若存在启动项目(如控制台、Web API),需保证该项目引用类库,且同样安装Microsoft.EntityFrameworkCore.Tools——迁移命令必须依赖一个可编译运行的启动项目。

2. DbContext 配置示例

在类库中创建DbContext类,确保配置正确:

using Microsoft.EntityFrameworkCore;

public class AppDbContext : DbContext
{
    // 定义你的实体集合
    public DbSet<Product> Products { get; set; }
    public DbSet<Order> Orders { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        // SQLite 连接字符串,可根据需求调整路径
        optionsBuilder.UseSqlite("Data Source=AppDatabase.db");
    }
}

如果采用依赖注入模式,可在启动项目的Program.cs中配置:

builder.Services.AddDbContext<AppDbContext>(options =>
    options.UseSqlite("Data Source=AppDatabase.db"));

3. 执行迁移的正确命令

打开包管理器控制台(Package Manager Console):

  • 顶部下拉菜单选择默认项目为你的类库项目
  • 确保启动项目是可执行项目(若未自动选中,手动设置)
  • 初始化迁移:
    Add-Migration InitialCreate
  • 若需明确指定项目,用以下命令:
    Add-Migration InitialCreate -Project YourClassLibraryName -StartupProject YourStartupProjectName
  • 将迁移应用到数据库:
    Update-Database

4. 编译失败常见排查点

  • 检查类库与启动项目的.NET版本是否完全一致,版本不兼容会直接导致编译失败
  • 确认所有EF Core相关NuGet包的版本统一,避免版本冲突
  • 检查DbContext类及实体类的语法,确保无缺失引用、拼写错误
  • 先单独编译类库和启动项目,确认各自能正常编译后再执行迁移命令

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 15:43:15