問題タブ [ef-power-tools]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
entity-framework - データベースをリバース エンジニアリングするときのナビゲーション プロパティ名を改善する
適度なサイズのデータベース (~100 テーブル) をリバース エンジニアリングするために、Entity Framework Power Tools Beta 2 を備えた Visual Studio で Entity Framework 5 を使用しています。
残念ながら、ナビゲーション プロパティには意味のある名前がありません。たとえば、2 つのテーブルがある場合:
これにより、次のようなクラスが生成されます。
これよりも優れたいくつかのバリアントがあります。
- 外部キーの名前を使用します: たとえば、最後のアンダースコア (
FK_Projects_TechnicalContact
-->TechnicalContact
) の後のすべて。これはおそらく最も制御性の高いソリューションですが、既存のテンプレートとの統合はより困難になる可能性があります。 - 外部キー列に対応するプロパティ名を使用します: 接尾辞
ID
(TechnicalContactID
-->TechnicalContact
)を取り除きます。 - プロパティ名と既存のソリューションの連結を使用: 例
TechnicalContactIDProjects
(コレクション) およびTechnicalContactIDContact
幸いなことに、テンプレートをプロジェクトに含めることで、テンプレートを変更することができます。
および に変更を加える必要がEntity.tt
ありMapping.tt
ます。これらの変更を行うためのインテリセンスとデバッグの可能性がないため、難しいと思います。
プロパティ名の連結(上記のリストの 3 番目) は、実装するのがおそらく最も簡単なソリューションです。
でナビゲーション プロパティの作成を変更し、次の結果Entity.tt
をMapping.tt
達成する方法:
oracle - EFPowerTools Beta2 VS2012 でコードを最初にリバース エンジニアリングできない
まず、PowerTools を使用してコードをリバース エンジニアリングしたいと考えています。ローカルの MS-SQL データベースからリバース エンジニアリングを行うと機能しますが、Oracle DB からは機能しません。出力コンソールに次のエラーが表示されます。
プロジェクトを右クリック > 追加 > ADO.NET エンティティ データ モデル > [既存の DB から] を選択し、ウィザードの残りの部分に従って、EF ファイルの通常の生成を行うことができます。ただし、いくつかの理由 (主に .cs ファイルとしてのマッピング) から、powertools の方が好きです。Oracle を使用しているときにリバース エンジニアリングができないのはなぜですか? ティア
entity-framework - Entity Framework、SQL Server CE 4.0、Code First での起動時のパフォーマンスの問題
アプリケーションで Entity Framework (EF) 5.0、Code First アプローチ、および SQL Server CE 4.0 データベースを使用しています。ただし、アプリケーションの起動時に大きなパフォーマンスの問題に直面しています。
インターネットで検索したところ、どの操作が起動パフォーマンスに影響するかを説明しているこの記事を見つけました。そのうちの 1 つがビューの生成です。そこで、実行時にビューを作成する代わりに、コンパイル時にビューを生成し、実行時にそれらを EF にリンクする方法を調べました。DbContext クラスを介してビューを生成するコマンドを提供する Entity Framework Power Tools に出会いました。
この記事で説明されているように、Entity Framework Power Tools を使用して、コンパイル時にビューを生成しました。ただし、SQL Server CE でアプリケーションを実行すると、常に次の例外が生成されます。
EntityContainer 'DatabaseContext' のマッピングおよびメタデータ情報が、事前生成されたビューの作成に使用された情報と一致しなくなりました。
一方、同じアプリケーションは SQL Server データベースで正常に動作します。そのため、さらに検索しましたが、この問題の修正は見つかりませんでした。以下は、同様のパフォーマンスの問題が報告されているリンクです。
私の質問は次のとおりです:「このアプリケーションの起動時のパフォーマンスの問題に対する回避策または解決策はありますか?」SQL サーバーではなく、SQL サーバー CE を使用する必要があります。
visual-studio-2010 - モデルを表示するために EF Power ツールを使用したいのに、エラーが発生するのはなぜですか?
最初にEFコードを使用し、vs2010の「EF 4.x DbContext Fluent Generator for c#」拡張機能によってモデルを生成します。しかし、EF Power ツールを使用してエンティティ モデルを表示しようとすると、「シーケンスに一致する要素が含まれていません」というエラーが表示されます。何か考えはありますか?
.net - 事前生成ビューの自動化
EF Power Tools には、ここで説明されている優れたオプションがあります。このコマンドを再度実行して、コンパイル済みのビューを再生成します。」
この機能は非常に優れているため、ブートストラップで最大 15 秒節約できます。ここで私の質問は次のとおりです。コンテキストの再構築中に自動生成を強制できますか? これによると、分離されたエンティティ アセンブリの伝播されたアプローチについて同じ質問があります (entities.tt と edmx は別々のアセンブリにあります)。どちらのシナリオでも、手動で手順を実行する必要があります...
entity-framework - PowerTools Beta 3 fails
I was trying to generate "views" to enhance the performance of my application. The application is Silverlight 4 linked with RIA services to the Server. The server application started with EF 4.1 + RIA Services. I installed "EF Power Tools Beta 3 v0.7.0.0" and could generate my views with no problem. But I soon realized that EF 4.1. was not able to benefit from the precompiled views. EF >= 4.2 was required. Through NuGet I saw an update for RIA Services (RIAServices.EntityFramework.4.2.0) which used EF 5. I installed and got everything working but when I try to generate views I get an exception:
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
I've tried reinstalling PowerTools. No luck I've downloaded source code for PowerTools and debugged the Exception. Apparently PowerTools was trying and could not find the old EF version. The LoaderExceptions property read:
{System.IO.FileNotFoundException: Could not load file or assembly 'EntityFramework, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies.
I've investigated the PublicKeyToken and confirmed that it is the same as the EF 5 (EF 4.4 target=.NET 4) dll found in my "bin" output map. But PowerTools is looking for EF 4.1.. why?
My web.config file has this:
and:
I've also tested changing the PublicKeyToken in Web.config just to confirm that I get another error from PowerTools thus PowerTools seems to parse my Web.config.
c# - データベースからエンティティへの命名変換
現在、EF Power Tools 3 で EF 5.0.0 を使用しています。最初にリバース エンジニアリング コード (Power Tools 3) を使用して、既存のデータベースからリバース エンジニアリングを行おうとしています。これを行うサンプルは、このMSDN リンクにあります。
これを行う際の唯一の問題は、データベース オブジェクトの名前です。小さな単語とアンダースコアをスペースとして使用するデータベース オブジェクト、例: item_cart. ただし、そのような命名基準を C# アプリケーションに渡したくないのです。
次に、テンプレートを微調整して、各テーブル/フィールド名をアプリケーションの命名基準に従うように変換しようとしました。これは私が今まで行ってきた現在の変換ツールです。
次に、Entity.tt で、この静的メソッドを使用してテンプレートを変更しました。columnName = CustomConvention.SqlNameToEntityName(columnName);
. このアプローチを使用すると、テーブル名を からitem_cart
にItemCart
十分に変換できます (ただし、まだテストされていません)。
最後に、ここに私の質問があります:
- 現在、.cs ファイル名を命名規則に従って変更することはできません。したがって、 item_cart.cs のままです
- 私のアプローチは将来問題になりますか?
- これを行うためのより良い(標準/よりクリーンな)方法はありますか?
- このリバース エンジニアリングのほかに、テーブル (おそらくビューやプロシージャ) をエンティティにマップするための最良の (最も速くてクリーンな) 方法は何ですか?
関連する可能性のある質問: EF4 のエンティティとデータベース標準との間の命名規則の競合を解決していますか?
c# - EF Power Tools と .edmx を組み合わせて CodeFirst クラスと DB を生成する
この手順を使用して、MVC プロジェクトで CodeFirst クラスを生成します。
1) メンバーシップ サポートを使用してアプリを実行し、メンバーシップを使用してメンバーシップの既定のテーブル (Membership、User、UserInRoles、...) を作成する MVC アクションを呼び出します。
2) 新しい .edmx ファイルをプロジェクトに追加し、ウィザードで [データベースから生成] を選択します
3) Visual Studio で .edmx ファイルの DB を編集 (新しいテーブルを追加)
4) .edmx の「モデルからデータベースを生成」を使用して新しいデータベースを作成する
5) Entity Framework Power Tools Beta 3 を「リバース エンジニア コード ファースト」で使用する
6) 既存のデータベースを削除し、コンテキストを使用する MVC アクションを呼び出す
このシナリオのより簡単な方法はありますか?
次のエラーが表示されます。
テーブル 'UsersInRoles' に FOREIGN KEY 制約 'FK_dbo.UsersInRoles_dbo.Users_Users_UserId' を導入すると、サイクルまたは複数のカスケード パスが発生する可能性があります。ON DELETE NO ACTION または ON UPDATE NO ACTION を指定するか、他の FOREIGN KEY 制約を変更します。制約を作成できませんでした。以前のエラーを参照してください。
エラーと、これに対する簡単で迅速な方法について教えてください。
ありがとう。