此平台不支持 LocalDB

Posted

技术标签:

【中文标题】此平台不支持 LocalDB【英文标题】:LocalDB is not supported on this Platform 【发布时间】:2018-02-02 06:59:08 【问题描述】:

我正在尝试在Ubuntu 17.04 上启动.Net Core 2.0 应用程序。我之前在 Windows 10 上开发过它,它运行良好。问题是当我运行dotnet ef database update 时,我得到了下一个异常:

System.PlatformNotSupportedException: LocalDB is not supported on this Platform.

这是我的DbContext

public class NutritionContext : DbContext

    public DbSet<User> Users  get; set; 
    public DbSet<Meal> Meals  get; set; 
    public DbSet<Dish> Dishes  get; set; 
    public DbSet<Product> Products  get; set; 
    public DbSet<Plan> Plans  get; set; 
    public DbSet<MealDish> MealDishes  get; set; 
    public DbSet<Ingredient> Ingredients  get; set; 
    public DbSet<PlanDetail> PlanDetails  get; set; 
    public DbSet<UserPlan> UserPlans  get; set; 
    public DbSet<AuthUser> AuthUsers  get; set; 

    public NutritionContext()
    
    

    public NutritionContext(DbContextOptions options) : base(options)
               
    

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    
        optionsBuilder.UseSqlServer(
            "Server=(localdb)\\mssqllocaldb;Database=NutritionDatabaseNew;Trusted_Connection=True;MultipleActiveResultSets=true");
    


你知道这可能是什么原因吗?

【问题讨论】:

原因:“本平台不支持LocalDB。” 它是not possible。谁告诉你可以在 Ubuntu 上使用 localDB? 解决方法,不要在该平台上使用 LocalDB。请改用其他数据库提供程序。对此没有什么可以说或做的(你加入 Microsoft db 开发团队并添加功能以使 LocalDB 与该平台兼容 好的,谢谢,我不知道我不能在 ubuntu 上使用 LocalDB 对不起?这怎么跑题了?当然,这是一个描述性错误,但在dotnet 等多平台工具上,该错误应该如何直观?我们应该如何知道没有缺少依赖项? 【参考方案1】:

LocalDb 是 SQL Server Express Edition 的一种打包机制,仅适用于 Windows。在 Ubuntu 上,您可以安装常规 SQL Server Express Edition。

https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-overview

这里是Ubuntu、Red Hat 和SUSE 的安装脚本。

或者使用 Docker 镜像:

https://docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-docker

【讨论】:

对不起@david-browne-microsoft,你的意思是说“在 Ubuntu 上,你可以安装常规的 SQL Server E̶x̶p̶r̶e̶s̶s 版本。” ? LocalDb 是 Express Edition 的一种,但您可以使用 Linux 安装程序或 docker 映像安装任何版本。【参考方案2】:

我从 Windows 机器切换到 MacBook Pro 时遇到了这个问题。正如其他人指出的那样,LocalDB 用于 SQL Server Express Edition。

要解决此问题,您需要安装 SQL Server 并使用 localhost 而不是 LocalDB。

【讨论】:

【参考方案3】:

对于基于 Arch 的 Linux 系统,mssql-server 包似乎是要走的路。

【讨论】:

以上是关于此平台不支持 LocalDB的主要内容,如果未能解决你的问题,请参考以下文章

用于 LocalDB 的 SQL Server 2014 Express .MSI 无法在目标 vm 上安装

此平台不支持 System.Data.SqlClient

Intellij 中的此平台不支持运行 32 位 JVM

警告:此平台不支持 ToastAndroid。反应原生错误

Azure AD Graph:此平台不支持安全二进制序列化

此平台不支持 CoreBluetooth BLE 硬件