私たちはABPテンプレートを私たちの企業で実装しようとしています。コードファーストのEFでは使用できない既存のアプリケーションDBがあります。企業はコードファースト法の使用を許可しません。したがって、db-firstメソッドを使用する必要があります。 既存のDBとSPでABPを実装した人がいる場合。 db-first useを有効にしたテンプレートに対するすべての変更のコードスニペットを共有してください。 すべての回答をいただければ幸いです!ASPNETBOILERPLATE .Netコアテンプレート - 既存のデータベースコードサンプルリクエスト
答えて
-
dotnet new mvc -au None -f netcoreapp1.0
EFコアは既存のDBをサポートしているテンプレートのいずれかから.NETのコア新しいプロジェクトを作成します(DBファーストアプローチ)、詳細指示はhereです。基本的にScaffold-DbContextコマンドを使用して、すべてのモデルクラスを生成します。
足場-DbContextはまだStoredProceduresをサポートしていないことに注意してください、それはあなたが
返信いただきありがとうございます!私は実際に自分のスレッドを投稿した直後にMSのドキュメントを見つけました。私はそれを一歩一歩踏んだ。しかし、私は移行の足場の間に別のエラーにぶち当たっています。私はサポートチームのaspnetzeroフォーラムに投稿しました。 – exlnt
あなたの会社はあなたの現在のデータベース、データ、SPなどを失いたくないので、EF Code-Firstを使用することはできません。それは問題ありません。
私は、ABPアプリケーションを作成し、現在のリレーショナルモデル(データベース)と一致するようにエンティティを作成することをお勧めします。テーブル間の
- 関係
- テーブル名とカラム名
- primeryキータイプ
- 外部キー
- など:EFが生成されたリレーショナルモデルをカスタマイズするのに十分な柔軟性があるので、これは権利です。あなたのYourApp_DbContextクラスで
あなたはOnModelCreatingをオーバーライドして、生成されたリレーショナルモデルをパーソナライズすることができます。
エンティティがリレーショナル・モデルと一致すると、コード・ファーストのアプローチを続けることができます。
私はDatabase-Firstアプローチを使うのは正しい方法ではなく、ABPはそのために設計されていないと思います。 Entityを最初に生成するためにDatabase-Firstアプローチを使用します(必要に応じて時間を節約するため)。
SPについては、EFでSPを呼び出すことができます。生のSQLクエリを実行することができ、その結果をエンティティまたは他のカスタムクラスにマッピングできます。
あなたが役に立ったら嬉しいです。
返信いただきありがとうございます!それは有り難いです。企業は非常に大規模なグローバル組織です。期待どおりの職務分掌を行っています。データアーキテクト、DBA、そしてチームのアプリ開発者がいます。この構造のため、DAとDBAのチームに属するので、最初にコードを使用することはできません。アプリチームは、あらゆる種類のDBオブジェクトを作成することは許可されていません。私たちはDA/DBAにデザインを提案することしかできません。私は個人的には、独立したプロジェクトのためにコードファーストを使ってABPテンプレートを使っています。私は、まずABP DBを使用するためのコードスニペットを望んでいました。 – exlnt
コードファーストマイグレーションは使用できませんが、コードの最初のエンティティマッピングを利用することはできます。既存のデータベーステーブルの場合、リバースエンジニアリングツールを使用して、データベースのコードの最初のモデルを作成します。
ストアドプロシージャでは、Dapper(aspnetboilerplate click hereと統合されています)を使用できます。一方、エンティティフレームワークはストアドプロシージャもサポートしています。カスタムリポジトリ>click here for more infoを作成する必要があります。
これは、カスタムコマンド実行例です。あなたがSPに実行することができますこの方法... See here for more info
using (var uow = uowManager.Begin(TransactionScopeOption.Suppress))
{
using (var con = new SqlConnection(ConnectionString))
{
con.Open();
using (var command = new SqlCommand("select * from ... ", con))
{
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
return reader.GetString(0);
}
}
}
}
uow2.Complete();
}
- 1. 埋め込みリアクト - ReduxのSPA .NETのコアテンプレートは
- 2. .NetコアテンプレートでMySql接続を設定できません
- 3. .net既存の/古いコードで待つ
- 4. 参照既存の.NET Frameworkプロジェクト
- 5. ASPNETBOILERPLATE - .NETの関連エンティティを返さないアプリケーションサービスメソッド
- 6. aspnetboilerplateテンプレートプロジェクト作成ビルドエラー
- 7. Symfony2:コアテンプレートをオーバーライドする方法は?
- 8. ベストプラクティス:.NET/Coreの既存のWindowsサービスへのCLIの追加
- 9. .net-core(DotNetCore 1.0)アプリケーションで既存のC#(.NET 4.5.x)を活用するには
- 10. 既存のデスクトップユーザー対応の.NETアプリケーションでチャットを埋め込む?
- 11. 既存の.NETスレッドのスタックサイズを取得する方法
- 12. 既存の.Netクラスの継承エラーを継承する
- 13. ASPNETBOILERPLATE - MVCバンドルメモリ不足エラー
- 14. フォームAspnetBoilerplate BSBテーマで選択
- 15. 既存のクラスライブラリに.NETコアサポートを追加します。
- 16. .NETコア2で既存のIServiceCollectionとILoggerFactoryをスタートアップに渡す
- 17. MonoTouchで既存の.NETライブラリを再利用する方法
- 18. 既存のASP.NETコアプロジェクトで完全な.NET Frameworkを使用する
- 19. 単体テスト、既存のWebフォームで既存のEF 5.0をどうやって模擬するかC#.net application
- 20. 既存Umbracoサイト
- 21. ASPNetBoilerplateのSqlQueryのカスタムリポジトリからToListAsync()にアクセス
- 22. EFコアの移行(aspnetboilerplateを使用)context.Database.Migrate();
- 23. カサンドラクラスターレプリケーション - 既存ノードと既存データ
- 24. 既存のスクリプトインジェクションポイント
- 25. 既存のC++
- 26. 既存のデータベース
- 27. 既存のプロセス
- 28. 既存のジオロケーションリスト
- 29. 既存の
- 30. 既存のオブジェクト
違ったことを管理する必要があることworks。だからであるしてくださいSOへようこそ!あなたの質問をよりよく理解するために、あなたのコードの一部とこれまでに試したことを分かち合うことができますか?あなたはどこにいるのですか? – MMachinegun
今まで、EFコアスキャフォールドcmdを使用して、既存のDBから "POCO"クラスを作成しました。 DBContextにDBSetエントリを追加しました。私たちが行った「新しい」ものは何もありません。 ABPテンプレートを使用してDBをセットアップした他の人たちからサンプルコードを入手しようとしていました。また、SPを使用する必要があり、そのためのサンプルコードも見たいと思っています。 – exlnt
あなたは実際に何を抱えていますか?動かないものがありますか? – Neil