クロスプラットフォーム対応のASP.NET Core RC2別モデル

.net-core-rc2 asp.net-core c# entity-framework-core

質問

私はモデルを独自のプロジェクトに分けて、新しい.netコアクラスライブラリを使用したxamarinクロスプラットフォームアプリケーションで使用しようとしています。私が提示されている問題は次のとおりです。

エラー画像

ソリューションの構成は次のとおりです。

ソリューション構造イメージ

私のクラスライブラリproject.jsonは次のとおりです:

{
  "version": "1.0.0-*",

  "dependencies": {
    "NETStandard.Library": "1.5.0-rc2-24027",
    "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0-rc2-final"
  },

  "frameworks": {
    "net451": { },
    "netstandard1.5": {
      "imports": [
        "dnxcore50",
        "portable-net452+win81"
      ]
    },
    ".netcoreapp1.0": {
      "imports": [
        "dnxcore50",
        "portable-net45+win8"
      ]
    }
  }
}

私はWebアプリケーションのクラスライブラリを参照していますが、モデルを適切に分離しているかどうかはわかりません。私は解決策を見出そうとしましたが、ASP.NET Coreフレームワークはまだ非常に新しいので、独自のプロジェクトにモデルを分ける方法に関する多くのドキュメントやガイダンスはありません。私は誰かがこれを達成する方法についていくつかの指針を提供できることを期待しています。

EDIT

ここに私のWebアプリケーションproject.jsonがあります:

{
  "userSecretsId": "aspnet-Climbing.Web-d856be17-9b54-401e-98b2-4d6589fc7ff3",

  "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.0.0-rc2-3002702",
      "type": "platform"
    },
    "Microsoft.ApplicationInsights.AspNetCore": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.Authentication.Cookies": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.Diagnostics": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.Mvc": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.Razor.Tools": {
      "version": "1.0.0-preview1-final",
      "type": "build"
    },
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.StaticFiles": "1.0.0-rc2-final",
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0-rc2-final",
    "Microsoft.EntityFrameworkCore.Tools": {
      "version": "1.0.0-preview1-final",
      "type": "build"
    },
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0-rc2-final",
    "Microsoft.Extensions.Configuration.Json": "1.0.0-rc2-final",
    "Microsoft.Extensions.Configuration.UserSecrets": "1.0.0-rc2-final",
    "Microsoft.Extensions.Logging": "1.0.0-rc2-final",
    "Microsoft.Extensions.Logging.Console": "1.0.0-rc2-final",
    "Microsoft.Extensions.Logging.Debug": "1.0.0-rc2-final",
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-rc2-final",
    "Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
      "version": "1.0.0-preview1-final",
       "type": "build"
     },
     "Microsoft.VisualStudio.Web.CodeGenerators.Mvc": {
       "version": "1.0.0-preview1-final",
       "type": "build"
     },
     "Microsoft.AspNetCore.Identity": "1.0.0-rc2-final",
     "Climbing.Domain": "1.0.0"
   },

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

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

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

  "runtimeOptions": {
    "gcServer": true
  },

  "publishOptions": {
    "include": [
      "wwwroot",
      "Views",
      "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%" ]
  }
}

ここに画像の説明を入力

助けを前にありがとう。

受け入れられた回答

私は解決策が奇妙にも問題ではないはずの名前空間の問題であることを発見しました。私は間違っているかもしれないが、基本的なASP.NETコアRC2フレームワークのどこかにバグがあると確信していますか?

この問題は、クラスライブラリのApplicationUserの名前空間を 'Climbing.Web.Models'から 'Climbing.Domain'に変更するときに発生します。これは正しい名前空間になります。これを 'Climbing.Web.Models'名前空間に戻すと、問題は解決されます。

編集:少し深く、私はApplicationUserが参照されたビューで名前空間を更新していないことを認識しました。インポートを更新してこの問題を修正しました。


人気のある回答

あなたのWebプロジェクトからクラスプロジェクトへの正しい参照がないかのように聞こえます(または、代わりにusingステートメントがありません)。

Webプロジェクトからクラスプロジェクトを参照するには、Webプロジェクトのproject.jsonと次のような依存関係を更新します。

"dependencies": {
    "Climing.Domain": {
        "version": "1.0.0-*",
        "target": "project"
     },
}


Related

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