Entity Framework 7データベース初回設定(MVC 6)

asp.net-core asp.net-core-mvc entity-framework-core

質問

長い間不変の闘争の末、MVC 6を使ってEF7 Databaseの最初のアプローチをどのように使うかを考え出しました。

App.Impl - > project.json:

"frameworks": {
    "net451": { },
    "dnx451": { }
},
"dependencies": {
    "EntityFramework.Commands": "7.0.0-rc1-final",
    "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final",
    "EntityFramework.MicrosoftSqlServer.Design": "7.0.0-rc1-final"
},

次に、cmdからコマンドを実行します。

dnx ef dbcontext scaffold "Server=ip,port;Database=db;User Id=user;Password=pass;" EntityFramework.MicrosoftSqlServer

3つの問題私はこれに直面しています。私のImplプロジェクトで。

  1. 私はデータ専用のフォルダを持っています。 My Dataフォルダには、DbContext、DbClassesなどのデータベース関連のものがすべて含まれている必要があります。しかし、Scaffoldはこれらのファイルをルートに作成します。これらのファイルを作成するフォルダを指定するにはどうすればよいですか?

  2. 私の職場では、50台のテーブルを持つデータベースを持つことができました。しかし、私は2にアクセスする必要がある場合はどうすればよいですか?私は自分のプロジェクトに50のテーブルをすべて追加したくありません。どのテーブルを指定するには?

  3. 私のデータベースでは、ユーザーを含むテーブルであるため、「Users」という名前のテーブルを持つことができます。しかし、Scaffoldは、Listになるまでは単一のユーザーであるため、クラスを「User」として作成する必要があります。作成するテーブルの名前はどのように指定できますか?

助けてくれてありがとう。

受け入れられた回答

使用してみてください

dnx ef dbcontext scaffold 
    "Server=Server\InstanceName;Database=db;Trusted_Connection=True;"
    EntityFramework.MicrosoftSqlServer 
    --dataAnnotations
    --outputDir Data
    --verbose
    --table dbo.Users

上記のすべてのパラメータは同じ行になければなりませんが、より簡単に読むために長い行をラップしました。 ソースコードを見ると、RC1のscaffoldコマンドをサポートするオプションを見ることができます。

ConnectionStringappsettings.jsonからコピーして貼り付ける際は、 Server=Server\\InstanceName;持つことができるため注意してくださいServer=Server\\InstanceName; ConnectionStringでは、 dnx ef dbcontext scaffoldは現在のところServer=Server\InstanceName;のみ受け付けServer=Server\InstanceName; Server=Server\\InstanceName;使用時にSystem.InvalidOperationExceptionエラーが発生Server=Server\\InstanceName; appsettings.jsonConnectionStringから直接コピーされます。

その他の重要なパラメータは-p | --targetProject - クラスライブラリでリポジトリを使用する場合に重要です。この場合、メインプロジェクトでefコマンドを定義し、メインプロジェクトのディレクトリでdnx ef dbcontext scaffoldを起動しますが、 -pを使用してクラスライブラリプロジェクトを参照します。

最後の発言。場合によっては、データベースからテーブルのサブセットを足場にする必要があります。コマンドラインのヘルプから完全にはっきりしませんが、 -t-table )パラメータを複数回指定できます 。 EF7 wikiの注記を参照してください 。したがって、 dbo.Usersdbo.Posts 2つのテーブル( PostsUsers外部キーがあるかどうか)をインポートする場合は、次の構文を使用できます

dnx ef dbcontext scaffold 
    "Server=Server\InstanceName;Database=db;Trusted_Connection=True;"
    EntityFramework.MicrosoftSqlServer 
    -a
    -o Models
    -v
    -t dbo.Users
    -t dbo.Posts

UPDATED:一つは使うべきdotnet ef dbcontext scaffoldの代わりに、 dnx ef dbcontext scaffold後でASP.NETコアRC2とで。



Related

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