問題タブ [linq-to-entities]
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 - WCF で Linq を使用する
Linq over WCF (n 層アプリケーション) を使用するための例またはガイドを探しています。Linq-to-SQL または Linq-to-entities のどちらを表示するかを指定してください。両方の使用例を見てみたい。
遅延実行のようなものが WCF でどのように機能するのか疑問に思っています (機能する場合)。循環参照のサポートなど...
これを WCF で Linq を使用するためのクイック スタート ガイドにするための情報は役に立ちます。
c# - EntityFrameworkとASP.NETのベストプラクティス
私は、エンティティフレームワークをASP.NET環境で期待どおりに(または少なくとも期待どおりに)機能させること、特にデータベースに保存しようとするときに異なるコンテキストに属するオブジェクトを処理することを夢中にしています。
Entity FrameworkとASP.NETを扱う際のベストプラクティスは何ですか?
linq - 永続化フレームワーク?
データベースにアクセスするための最良の戦略を決定しようとしています。これは一般的な質問であり、唯一の適切な答えがないことは理解していますが、探しているものに関するガイドラインをいくつか提供します。ここ数年、私たちは独自の永続化フレームワークを使用してきましたが、これも限定的ではありますが同様に機能しています。ただし、いくつかの大きな改善が必要であり、そのようにするか、既存のフレームワークのいずれかを使用する必要があるかどうか疑問に思っています。私が探している基準は、重要な順に次のとおりです。
クライアント コードは、データベースの知識がなくても、クリーンなオブジェクトで動作する必要があります。カスタム フレームワークを使用する場合、クライアント コードは次のようになります。
SessionManager セッション = 新しい SessionManager(); オーダー order = session.CreateEntity(); order.Date = DateTime.Now; // その他のプロパティを設定します OrderDetail detail = order.AddOrderDetail(); detail.Product = 製品; // その他のプロパティ
// 今すぐすべての変更をコミットします session.Commit();
できるだけシンプルで、「柔軟性がありすぎない」必要があります。ほとんどのことを行うには、単一の方法が必要です。
- オブジェクト指向プログラミングを適切にサポートする必要があります。1 対多および多対多の関係を処理し、継承を処理し、遅延読み込みをサポートする必要があります。
- 構成は、XML ベースであることが望ましいです。
私の現在の知識では、次のオプションがあります。
- 現在のフレームワークを改善する - 問題は、かなりの労力が必要なことです。
- ADO.NET Entity Framework - よく理解していませんが、複雑すぎてレビューが悪いようです。
- LINQ to SQL - オブジェクト指向のプラクティスを適切に処理できません。
- nHibernate - 良いオプションのようですが、古いエラーが多すぎると報告するユーザーもいます。
- SubSonic - 簡単な紹介からすると、柔軟性が高すぎるように思えます。私はそれを望んでいません。
何を提案しますか?
編集:
精巧な答えをありがとうクレイグ。カスタム フレームワークについて詳しく説明すると、さらに役立つと思います。似たようなものを探しています。カスタム フレームワークの仕組みは次のとおりです。
- これは DataSet に基づいているため、最初に DataSet を構成し、そこに必要なクエリを記述します。
- DataSet テーブルをオブジェクトにマップする方法を指定し、それらの間の関連付けも指定する XML 構成ファイルを作成します (すべての種類の関連付けをサポートします)。3. カスタム ツールが XML 構成を解析し、必要なコードを生成します。4.生成されたクラスは、共通の基本クラスから継承します。
フレームワークと互換性を持たせるには、データベースが次の基準を満たしている必要があります。
- 各テーブルには、主キーとして 1 つの列が必要です。
- すべてのテーブルには、クライアントで生成された同じデータ型の主キーが必要です。
- 継承を処理するために、単一テーブルの継承のみがサポートされています。また、XML ファイルは、ほとんどの場合、何かを達成するための単一の方法を提供します。
私たちが今サポートしたいのは:
- DataSet から依存関係を削除します。SQL コードは自動的に生成されますが、フレームワークはスキーマを生成しません。DB スキーマを手動で制御したい。
- 継承階層のより強力なサポート。
- オプションの LINQ との統合。
私が探しているものがより明確になったことを願っています。
.net - アソシエーション値でEntityDataSourceをフィルタリングします
私はEntityFrameworkが本当に好きですが、私にとって挑戦的な重要な要素がいくつかあります。アソシエーション列でEntityDataSourceをフィルタリングする方法を教えてもらえますか?EFはFK値を非表示にし、代わりにAssociationプロパティを持ちます。PersonTypeアソシエーションを持つEntity、Personが与えられた場合、Personエンティティをタイプでフィルタリングしたい場合は、次のようなものが機能することを期待していました。
また
あるいは
しかし、それらはどれも機能しません。誰かがこれを行う方法を知っていますか?
c# - WCF を使用したエンティティへの Linq
edmx ファイルの別のプロジェクトにすべてのエンティティがあり、WCF サービスを使用してそれらをクライアント アプリケーションに公開しています。
つまり、edmx ファイルを含むプロジェクトへの直接リンクをクライアント アプリに提供する必要はありません。データベースを照会するオブジェクトを継続するため、これは悪いことです。
ただし、クライアント アプリからアクセスできるのは、WCF サービスが使用するエンティティのみです。たとえば、サービスに次のコードがあるためです。
.. 次のようなクライアント アプリで Access MyClass を使用できます。
クライアント アプリで使用したい edmx ファイルに MyClass2 というエンティティがある場合はどうでしょう。クライアントに edmx ファイル プロジェクトへの直接リンクを提供したり、サービス レイヤーで MyClass2 を返す役に立たないメソッドを作成したりせずにインスタンス化する方法
他の人は何をしていますか?
どうもありがとう
c# - ObjectQuery で OrderBy の存在を確認する方法式ツリー
LINQ to Entities エンティティのリポジトリを生成するために T4 を使用しています。
リポジトリには、(特に) ページングに適した List メソッドが含まれています。サポートされているメソッドとサポートされていないメソッドのドキュメントには記載されていませんがSkip
、 unordered で「呼び出す」ことはできませんIQueryable
。次の例外が発生します。
System.NotSupportedException: メソッド 'Skip' は、LINQ to Entities の並べ替えられた入力に対してのみサポートされています。メソッド「OrderBy」は、メソッド「Skip」の前に呼び出す必要があります。
部分メソッドを介してデフォルトの並べ替えを定義できるようにすることで解決しました。しかし、式ツリーに実際にOrderBy
.
問題を可能な限り少ないコードに減らしました。
これは私の実際の実装ではありません!
しかし、私の質問は、どのようにIsSorted
メソッドを実装できるでしょうか? 問題は、LINQ to Entities クエリが常にObjectQuery
を実装するタイプであるということIOrderedQueryable
です。
OrderBy
では、メソッドが式ツリーに存在することを確認するにはどうすればよいでしょうか? ツリーを解析する唯一のオプションはありますか?
更新リポジトリに並べ替えサポートを追加する方法ではなく、部分メソッドが実際に式ツリーに追加
したかどうかを確認する方法であることを明確にするために、他の 2 つのオーバーロードを追加しました。ProvideDefaultSorting
OrderBy
問題は、最初の部分クラスがテンプレートによって生成され、部分クラスの 2 番目の部分の実装が別の時点でチーム メンバーによって行われることです。.NET Entity Framework が EntityContext を生成する方法と比較できます。これにより、他の開発者向けの拡張ポイントが可能になります。ProvideDefaultSorting
そのため、が正しく実装されていない場合でも、堅牢にしてクラッシュしないようにしたいと考えています。
問題はそれ以上かもしれませんが、ProvideDefaultSorting
実際に式ツリーに並べ替えが追加されたことを確認するにはどうすればよいでしょうか。
更新 2
新しい質問が回答され、受け入れられました。タイトルを質問にもっと一致するように変更する必要があると思います。それとも、同じ問題を抱えている人をこの解決策に導くので、現在のタイトルを残す必要がありますか?
.net - Visual Basic で LINQ to Entities を使用するにはどうすればよいですか?
2 つのプロジェクトで .NET ソリューションを作成しました。
ToyData (Visual Basic クラス ライブラリ)
ToyOne (Visual Basic WPF アプリケーション)
ToyData プロジェクトには、Toy というデータベースから生成された ADO.NET Entity Data Model であるToy.edmxが含まれています。
ToyOne プロジェクトには、次のWindow1.xaml.vbファイルが含まれています。
自動生成されたToy.Designer.vbファイルで、次の実行時例外がスローされます。
私は何を間違っていますか?
.net - ADO.NET Entity Framework オブジェクトを部分クラスで拡張するにはどうすればよいですか?
Toy.edmx (Toy というデータベースから生成された ADO.NET エンティティ データ モデル) を含む Visual Basic WPF アプリケーション プロジェクトを作成しました。
そのWindow1.xaml.vbファイルは次のようになります。
それはうまくいきます。
しかし、ファイルClient.vbを追加すると...
...そして、 Window1.xaml.vbクエリに WHERE 句を追加します...
...次に、この NotSupportedException を取得します。
LINQ to Entities はメソッド 'Boolean IsWashington()' メソッドを認識せず、このメソッドはストア式に変換できません。
ADO.NET Entity Framework オブジェクトを部分クラスで拡張するにはどうすればよいですか?
.net - ADO.NET Entity Framework クラスにビジネス ロジックを配置するにはどうすればよいですか?
データ アクセスに ADO.NET Entity Framework を使用し、そのオブジェクトをビジネス ロジック用に拡張し、それらのオブジェクトを UI のコントロールにバインドしたいと考えています。
別の質問への回答で説明されているように、 ADO.NET Entity Framework オブジェクトを部分クラスで拡張し、LINQ クエリでカスタム メソッドを使用することはできません。
ADO.NET Entity Framework 部分クラス http://img221.imageshack.us/img221/7329/clientsq0.gif
ランタイム エラーを引き起こすメソッドが Intellisense に表示されるのは望ましくありません。この問題を回避するには、アプリケーションをどのように設計すればよいですか?
カスタム メソッドを使用した VB.NET LINQ http://img83.imageshack.us/img83/1580/iswashingtongn0.gif
データ アクセス クライアント クラスとビジネス ロジック クライアント クラスが必要ですか? 混乱してしまいそうです。
entity-framework - Entity Framework & LINQ To SQL - 利益相反?
私は先週ブロゴスフィアで、Linq to SQL が死んでいる [そして EF と Linq to Entities が長生きしている] ことを読んでいました。しかし、MSDN の概要を読んだとき、Linq to SQL が SQL クエリを生成するのとまったく同じように、Linq to Entities が eSQL を生成するように思えました。
現在、基礎となる実装 (および SQL Server はまだ ODBMS ではないため) は依然としてリレーショナル ストアであるため、エンティティ フレームワークは、ある時点で SQL クエリへの変換を行う必要があります。Linq to SQL の問題 (m:m 関係、SQL サーバーのみのサポートなど) を修正し、これらのクエリを生成するレイヤーとして Linq to SQL を使用しないのはなぜですか?
これはパフォーマンスのためですか、それとも EF は eSQL ステートメントを SQL に変換する別の方法を使用していますか?
少なくとも私の未熟な心にとっては、EF でのドッグフード Linq to SQL に自然に適合するように思えました。
コメント?