asp.netコアのlinux - dotnet efデータベースの更新がバージョンエラーで失敗する

asp.net asp.net-core entity-framework-core linux sqlite

質問

ちょうどhttps://www.microsoft.com/net/core#linuxubuntuhttps://docs.microsoft.com/en-us/aspnet/core/getting-startedのインストール手順に従ってください

http:// localhost:5000 / Account / Registerで新しいユーザーを作成する場合を除いて、これまでのところすべて正常です

SQLiteエラー 'そのようなテーブルがありません:AspNetUsers'

SQLiteエラー 'そのようなテーブルがありません:AspNetUsers'

dotnet ef database updateテーブル構造を作成しようとしましたが、バージョンエラーで失敗します。

ここに画像の説明を入力

今、私は、内のすべての異なるバージョンで迷子になったproject.json使用するには、 1.1.0とするとき1.0.0それがしなければならないとき、 preview1-final preview2-final preview3-finalまたはより良いpreview2-update1

dotnetの後のproject.jsonをそのままdotnet new -t web

{
  "userSecretsId": "aspnet-WebApplication-0799fe3e-6eaf-4c5f-b40e-7c6bfd5dfa9a",

  "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.1.0-preview1-001153-00",
      "type": "platform"
    },
    "Microsoft.AspNetCore.Authentication.Cookies": "1.0.0",
    "Microsoft.AspNetCore.Diagnostics": "1.0.0",
    "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "1.0.0",
    "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0",
    "Microsoft.AspNetCore.Mvc": "1.0.1",
    "Microsoft.AspNetCore.Razor.Tools": {
      "version": "1.0.0-preview2-final",
      "type": "build"
    },
    "Microsoft.AspNetCore.Routing": "1.0.1",
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
    "Microsoft.AspNetCore.StaticFiles": "1.0.0",
    "Microsoft.EntityFrameworkCore.Sqlite": "1.0.1",
    "Microsoft.EntityFrameworkCore.Tools": {
      "version": "1.0.0-preview2-final",
      "type": "build"
    },
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
    "Microsoft.Extensions.Configuration.Json": "1.0.0",
    "Microsoft.Extensions.Configuration.UserSecrets": "1.0.0",
    "Microsoft.Extensions.Logging": "1.0.0",
    "Microsoft.Extensions.Logging.Console": "1.0.0",
    "Microsoft.Extensions.Logging.Debug": "1.0.0",
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0",
    "Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
      "version": "1.0.0-preview2-update1",
      "type": "build"
    },
    "Microsoft.VisualStudio.Web.CodeGenerators.Mvc": {
      "version": "1.0.0-preview2-update1",
      "type": "build"
    }
  },

  "tools": {
    "Microsoft.AspNetCore.Razor.Tools": {
      "version": "1.0.0-preview2-final",
      "imports": "portable-net45+win8+dnxcore50"
    },
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": {
      "version": "1.0.0-preview2-final",
      "imports": "portable-net45+win8+dnxcore50"
    },
    "Microsoft.EntityFrameworkCore.Tools": {
      "version": "1.0.0-preview2-final",
      "imports": [
        "portable-net45+win8+dnxcore50",
        "portable-net45+win8"
      ]
    },
    "Microsoft.Extensions.SecretManager.Tools": {
      "version": "1.0.0-preview2-final",
      "imports": "portable-net45+win8+dnxcore50"
    },
    "Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
      "version": "1.0.0-preview2-final",
      "imports": [
        "portable-net45+win8+dnxcore50",
        "portable-net45+win8"
      ]
    }
  },

  "frameworks": {
    "netcoreapp1.1": {
      "imports": [
        "dotnet5.6",
        "dnxcore50",
        "portable-net45+win8"
      ]
    }
  },

  "buildOptions": {
    "debugType": "portable",
    "emitEntryPoint": true,
    "preserveCompilationContext": true
  },

  "runtimeOptions": {
    "configProperties": {
      "System.GC.Server": true
    }
  },

  "publishOptions": {
    "include": [
      "wwwroot",
      "**/*.cshtml",
      "appsettings.json",
      "web.config"
    ]
  },

  "scripts": {
    "prepublish": [ "npm install", "bower install", "gulp clean", "gulp min" ],
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
  },

  "tooling": {
    "defaultNamespace": "WebApplication"
  }
}

Asp.netコア - そのようなテーブルはありません:AspNetUsersと同様のようですが、それはウィンドウです。

ここに画像の説明を入力

project.jsonを更新してSQliteに保存する初期ASP.netコアテンプレートを取得するには?あるいは、UbuntuでSQliteに関して欠けているものは何ですか? libsqlite3-0:amd64バージョン3.14.1-1build1 libsqlite3-0:amd64がインストールされています...

受け入れられた回答

githubの最新のビット( 1.0.0-rc4-004777 )とgithubに関するいくつかの助けを借りて( EF Core Tools Bug Bash#7358 )私は解決策を得ました

wget https://dotnetcli.blob.core.windows.net/dotnet/Sdk/rel-1.0.0/dotnet-dev-ubuntu.16.04-x64.latest.tar.gz
sudo mkdir /opt/dotnet
sudo tar zxvf dotnet-dev-ubuntu.16.04-x64.latest.tar.gz -C /opt/dotnet
sudo ln -s /opt/dotnet/dotnet /usr/local/bin
mkdir testweb
cd testweb
dotnet new mvc --auth Individual
dotnet restore

.csprojを編集して追加する

<ItemGroup>
  <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet"
                          Version="1.0.0-msbuild3-final" />
</ItemGroup>

.csprojを保存すると、データベースを作成することができ、テンプレートは正常に動作します。

dotnet restore
dotnet ef database update
dotnet run

上記のすべてを使って、Linuxでテンプレートを実行し、ユーザを作成し、 http:// localhost:5000 / Account / Registerにログインし、EntityFrameworkCoreをsqliteに保存することができます。


人気のある回答

MACで開発してDebianに展開している間、私はこの同じ問題を抱えていました。私は、開発マシンから本番サーバーにデータベースファイルをコピーしてしまいました。 publishコマンドで生成されたデータベースファイルを調べると、空になります。これがあなたを助けることを願って!



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ