問題タブ [entity-framework-4]
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.
linq-to-sql - 新しい小さなアプリのために Entity Framework に移行する価値はありますか?
新しい小さなアプリのために Entity Framework に移行する価値はありますか? 約 10 個のテーブルと WinForms アプリ。
つまり、代替手段は DataTables/DataRows または Linq-to-SQL です
c# - ADO.NetEntityFrameworkカスタムエンティティの質問
そうです...すべてのEntityFrameworkエキスパートに電話をかけます...
データベースにBobというテーブルがあり、EFモデルにはこれの正確なマッピング/定義が含まれています。また、エンティティモデルにマップされているJimというテーブルもあります。ボブは複数のジムを持つことができ、この関係は本来あるべき外部キー制約によって強制されます。したがって、ここでの関係はバラ色です。ただし、EFモデルにJimSnapshotという独自のエンティティも作成しました。このエンティティは、Jimエンティティとまったく同じように見えます。ボブが作成されると、その時点でジムのスナップショットが取得され、ボブのJimSnapshotXMLという列に非常にフラットなXMLとして格納されます。
私がやりたいのは、JimSnapshotエンティティをBobに関連付けて、実際にJimSnapshotXMLプロパティをJimSnapshotエンティティの入力バージョンに置き換えることです。または、少なくとも、BobからJimSnapshotエンティティにアクセスし、JimSnapshotXML属性を非表示にします。
これは可能ですか?どうすればいいですか?これは意味がありますか?
基本的に、私は次のように上記にアクセスできるようにすることを目指しています(C#)。
entity-framework - EntityFramework4を使用した全文+空間検索
レストランというテーブルを持つSQL2005データベースがあるとしましょう。レストランテーブルには次の列があります。
- RestaurantId
- 名前
- 緯度
- 経度
ユーザーが名前や住所でレストランを検索できるようにしたい。これをサポートするLINQクエリを作成するにはどうすればよいですか?ユーザーが名前や住所を入力しない、名前だけ、住所だけ、または名前と住所の両方を入力しない可能性をサポートできる必要があります。
私の最初のアイデアは、2つの緯度/経度のペア間の距離を計算するストアドプロシージャと、FREETEXTTABLEを呼び出し、クエリで条件付きの結合呼び出しを使用するためのテーブル値関数を作成することでした。ただし、EntityFramework4はテーブル値関数をサポートしていないようです。
c# - SQLite で Entity Framework を使用するための dotConnect または "sqlite.phxsoftware.com"
SQLite (C#) で Entity Framework を使用する場合、dotConnectまたは " sqlite.phxsoftware.com "のどちらを選択するのが適切ですか?
entity-framework-4 - Entity Frameworks 4 - モデルを変更しても T4 セルフ トラッキング テンプレート ファイルが更新されない
私はセルフ トラッキング エンティティを使用しており、「リンクとして追加」を使用してエンティティ クラスを別のアセンブリに移動し、ここで説明したように TT ファイルをポイントしました。ただし、モデルを更新すると (たとえば、プロパティ名を変更すると)、テンプレートは自動的に実行されないため、エンティティ クラスは更新されません。
もちろん、テンプレートを手動で実行して更新を取得することもできますが、クラスを移動する前と同じように自動的に実行した方が簡単です。これを達成する方法はありますか?
ダレン。
c# - C#4.0/EF-サーバーで生成されたキーとサーバーで生成された値はSQLServerCompactではサポートされていません
プロジェクトの1つをVS2010/fx4.0に移動し、SQLCEデータベースをバッキングストアとして使用しています。このバージョンの.NETに移動してから、次のエラーが発生します。
サーバーで生成されたキーとサーバーで生成された値は、SQLServerCompactではサポートされていません。
SQLCEではfx3.5のすべてのテーブルにPKが必要だったため、私のテーブルはUserName(文字列)とDoorOpen(日時)のPKで定義されました。今、私はfx4.0にいるので、困惑しています。私はこれをグーグルで検索しました、そして私が見つけたすべての答えは次のとおりでした:
SQLCEは自動生成値(私は間違いなく必要ありません)をサポートしていないので、そこにGUID IDを配置し、コードから入力します。
このアプローチを試しましたが、まだ同じエラーが発生します。
SQLCE:
以前の制約は次のとおりです。
コード:
んで、どうする?これはEF4のバグですか?私は何か間違ったことをしていますか?
TIA
ノート:
EDMXファイル(右クリックして、XMLで開く)を調べたところ、日付列の1つがStoreGeneratedPattern="Identity"で設定されていることがわかりました。
次に、きれいなモデルビューに戻り、データベース内のすべての列をクリックして、これが設定されていないことを確認しました。確かにPITA。完璧な小さなツール/アドインを作成する必要があるようです...
postgresql - EdmGen2 で生成された edmx を .NET 4.0 を使用して VS10 で表示できない
Postgresql データベースからエンティティ モデルを生成しようとしています。.net 3.5 および vs2008 では問題なく動作しました。残念ながら、vs10 ではそうではありません。エラーが発生します:
「ファイルは、プロジェクトのターゲット フレームワークと矛盾する XML 名前空間を参照しています。」
EF4 が v1 ではなく EDMX v2 を使用しているためだと思いますが、EdmGen2 の RetrofitModel パラメーターを使用して変更することはできません (ModelGen で使用可能な同様のパラメーターがありますが、RetrofitModel では使用できません)。xml でバージョンと参照を手動で変更しようとしましたが、デザイナーで edmx ファイルを表示できましたが、空でした。
質問
Postgresql データベースから VS10 用の EF4 設計ファイルを生成するには?
.net - Entity Framework 4クエリのコンパイル時間を短縮するにはどうすればよいですか?
概要:EF4クエリのコンパイル時間が12秒以上で問題が発生しています。キャッシュされたクエリは、これまでのところしか取得できません。実際にコンパイル時間を短縮する方法はありますか?私たちが間違っているかもしれない何かを探すことができますか?ありがとう!
WCFサービスで公開されるEF4モデルがあります。エンティティタイプごとに、参照されている子オブジェクトの数を含む、表示/編集用のエンティティ全体をフェッチして返すメソッドを公開します。
1つの特定のエンティティについて、関連するすべてのデータを返すには、31個のテーブル/サブテーブルを.Include()する必要があります。残念ながら、これによりEFクエリのコンパイルが非常に遅くなります。コンパイルに12〜15秒かかり、7,800行の300Kクエリが作成されます。これはWebUIのバックエンドであり、それよりもスッキリする必要があります。
これを改善するために私たちにできることはありますか?CompiledQuery.Compile this-これは最初の使用まで何の作業も行わないため、2回目以降の実行に役立ちますが、最初の使用も遅くならないようにお客様は神経質になっています。同様に、WebサービスをホストしているIISアプリプールがリサイクルされると、キャッシュされたプランは失われますが、これを最小限に抑えるためにライフタイムを増やすことができます。また、これを事前にプリコンパイルしたり、EFでコンパイルされたクエリキャッシュをシリアル化する方法がわかりません(リフレクションのトリックはありません)。CompiledQueryオブジェクトには、キャッシュへのGUID参照のみが含まれているため、これが私たちが本当に気にかけているキャッシュです。(これを書き出すと、app_startupからバックグラウンドで何かを開始して、すべてのクエリを実行してコンパイルすることができます-それは安全ですか?)
ただし、その問題を解決したとしても、検索対象のパラメーターに基づいてLINQ-to-Entities句を使用して動的に検索クエリを構築します。SQLジェネレーターは、移動できるほど十分に機能しないと思います。そのすべてのロジックをSQLレイヤーに組み込むため、検索クエリを事前にコンパイルすることはできないと思います。検索データの結果に使用されるテーブルが少なく、コンパイルにかかる時間は12〜15秒ではなく3〜4秒であるため、これはそれほど深刻ではありませんが、顧客はそれでもエンドユーザーには実際には受け入れられないと考えています。
したがって、クエリのコンパイル時間をなんとかして短縮する必要があります。何か案は?
- プロファイリングは開始する場所としてELinqQueryState.GetExecutionPlanを指しており、それに踏み込もうとしましたが、実際の.NET 4ソースが利用できないと、それほど遠くまで行くことができず、Reflectorによって生成されたソースではいくつかに踏み込むことができません。関数またはそれらにブレークポイントを設定します。
- プロジェクトは.NET3.5からアップグレードされたので、何か問題があった場合に備えて、EF4でEDMXを最初から再生成してみましたが、それは役に立ちませんでした。
- ここで宣伝されているEFProfユーティリティを試しましたが、これには役立たないようです。私の大きなクエリはとにかくそのデータコレクターをクラッシュさせます。
- 生成されたクエリをSQLパフォーマンスチューニングで実行しましたが、すでに100%のインデックス使用率があります。クエリジェネレータの問題を引き起こすデータベースに問題はありません。
- 実行プランコンパイラに何かO(n ^ 2)がありますか?これを一度に32個のテーブルすべてではなく、個別のデータロードのブロックに分割すると役立つ可能性がありますか?EFを遅延読み込みに設定しても効果はありませんでした。
- プレリリースのO'ReillyJulieLerman EF4の本を購入しましたが、「クエリのコンパイル」以外に役立つものは何も見つかりません。
32個のテーブルにわたって単一の選択を生成するのに12〜15秒かかる理由がわかりません。そのため、改善の余地があると楽観視しています。
提案をありがとう!重要な場合はSQLServer2008に対して実行し、RTMVS2010を使用するXP/7/サーバー2008R2に対して実行しています。
sql - EntityFrameworkを使用してリビジョンのある2つのテーブル間の関係を作成する方法
そのため、私は小さなデータベース(および場合によってははるかに大きなデータベース)を再設計しているところですが、ビジネスオブジェクトのリビジョン/履歴を使用することの価値を示したいと思います。データをAccessからMSSQL2008に切り替えています。
デザイン自体で使用する「リビジョン履歴」のバージョンについて社内で多くの議論があり、すべてのテーブルに「RevisionId」を追加することにしたと思いました。
この設計では、追跡したいすべてのテーブルにRevisionIdを追加します。たとえば、次のような2つのテーブル間のナビゲーションプロパティと関係を作成するための最良の方法は何でしょうか。
ベンダーが複数の連絡先を持つことができる場合。連絡先自体は改訂中です。カスタム拡張機能が必要ですか、それとも私はこれを考えすぎていますか?
前もって感謝します。
orm - 概念モデル マッピングの Entity Framework v4 の例とチュートリアル
私が書いているアプリケーションには、かなり複雑なデータベース モデルがあります。EF4 を使用して、これをより優れた概念モデルにマッピングしたいと考えています。ただし、私が読んだすべてのチュートリアルには、2 つまたは 3 つのテーブルのサンプルがあり、すべて 1 対 1 で概念モデルにマップされています。
VS 2010 を使用して、データベース モデルを別の概念モデルに正しくマッピングする方法を学びたいのですが、適切なチュートリアルや (できれば) 説明ビデオが見つかりません。
ヒント、リンク、または書籍を入手した人はいますか?