問題タブ [asqueryable]
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.
c# - LINQを使用したDataColumnCollectionのクエリ
DataTableのColumnsプロパティで単純なLINQクエリを実行しようとしています。
しかし、私が得るものはこれです:
ソースタイプ「System.Linq.IQueryable」のクエリパターンの実装が見つかりませんでした。「選択」が見つかりません。範囲変数'c'のタイプを明示的に指定することを検討してください。
DataColumnCollectionをLINQとうまく連携させるにはどうすればよいですか?
asp.net-mvc-2 - ASP.NET MVC - IQueryable データのキャッシュ
この質問を見つけました MVCアプリケーションでデータをキャッシュする方法 そして、このメソッドを IQueryable データで使用できるかどうか疑問に思っています。
これに変更できますか
winforms - CheckedListBoxItemCollection.AsQueryable()。Provider.CreateQuery()を使用してWinFormsコントロールをクエリします。
CheckedListBoxItemのプロパティ"Value"内にある特定のIDをクエリするCheckedListBoxItemCollectionを持つwinformsコントロール(CheckedListBoxControl)をクエリする必要があります。
アップデート:
Visual Studioで、IEnumerableまたはIEnumberable名前空間が見つからないと言うのはなぜですか?代わりに「var」を使用すると、コードをコンパイルできます。しかし、私の会社の上司は私が変数を使用することを禁じています...
dynamic-linq - 任意のタイプの IEnumerable を AsQueryable にしようとしているので、Dynamic Linq を使用できます
Enumerable に含まれる型がわからないため、Dynamic Linq を使用できるように AsQueryable にしようとしています。例えば:
いくつかのことを試すためにテスト プログラム (以下) をセットアップしましたが、その方法がわかりません。タイプ「Object」に「プロパティまたはフィールド「AddressId」がありません」という例外が発生します
Dynamic.cs の Expression ParseMemberAccess(Type type, Expression instance) メソッドで発生します。
System.Linq.Dynamic の使用;
直接のウィンドウでは、q1、q2、q3、q4 はすべて同じように見えます - EnumerableQuery は型を認識しています...
{System.Collections.Generic.List 1[TestAsQueryable.Address]}
base {System.Linq.EnumerableQuery}: {System.Collections.Generic.List
1[TestAsQueryable.Address]}
c# - XmlAttributeCollection の LINQ ステートメントを記述する方法は?
私はいつも AsQueryable と AsEnumerable を混同しています。いつ使用する必要がありますか? AsQueryable を使用して LINQ ステートメントを作成し、xml または AsEnumerable の属性に従ってフィルターを作成する必要がありますか?
c# - コレクションで AsQueryable() を使用する必要は本当にありますか?
コード例:
しかし、クエリを次のように変更すると
これも機能し、同じ結果が得られますが、違いは何ですか?
extension-methods - IQueryable vs IEnumerable...拡張メソッド
真剣に、単純なものが欠けている必要があります。どんな助けでも大歓迎です。
シナリオは次のとおりです。1) 適切な署名 (IQueryable、int x、int y) を使用して、DoSomething という IQueryable 拡張メソッドを作成します。2) IQueryable の代わりに IEnumerable を受け入れる/返すことを除いて、IQueryable と同じ署名を使用して DoSomething と呼ばれる IEnumerable 拡張メソッドを作成します。3) IEnumerable 拡張メソッド内で、enumerable を Queryable (AsQueryable) に変換し、IQueryable.DoSomething メソッドの呼び出しを試みます。
何らかの理由で、上記のシナリオは、IQueryable ではなく IEnumerable 拡張メソッドを再帰的に呼び出しているように見えます。理由がわかりません。
IQueryable が IEnumerable を拡張することを理解しています。ただし、.NET 拡張機能は正しく検出して動作するようです。たとえば、 variable.AsQueryable().Take(1) は、少なくとも intellisense (および ReSharper) を介して、Enumerable 拡張ではなく、Queryable 拡張を呼び出します。独自のコードを作成すると、機能していないように見え、無限ループが作成されます。
c# - ラムダ式を SQL に変換する方法は?
データベースにアクセスするための小さなフレームワークを開発しています。ラムダ式を使用してクエリを作成する機能を追加したいと考えています。どうすればいいですか?
例えば:
linq - ビジネス ロジック層の AsQueryable() - 悪い習慣ですか? (そう思うけど……)
たとえば、私が持っているとします(疑似コード):
public IEnumerable<User> GetUsers(string name)
データ アクセス レイヤーで Entity Framework に接続します。現時点では、.ToList()
返す前に実行するため、ビジネス ロジック レイヤーがデータ アクセス レイヤーに干渉しないようにします。
ただし、ビジネスロジックレイヤーでは、これに少し異なるバリエーションが必要です。たとえば、必要なデータが少なくなります(たとえば、ユーザーIDまたはさらにフィルタリングするためなど)。
効率的な DB レイヤーを作成するには、データのサブセットを返す別のメソッド (オーバーロードされたメソッドなど) が必要です。
ただし、ToList() を「チート」して省略することもできます。ビジネス ロジック レイヤーは最後に AsQueryable() を追加します。したがって、私のビジネス ロジック レイヤーは、作成された基になる SQL を操作できます。
ビジネス ロジック層の AsQueryable() に対する人々の考えは? これは私のデータ アクセス レイヤーに対する漏れやすい抽象化のように思えますが、信じられないほど便利である可能性があります。おそらく、(EF 名前空間ではなく) LINQ 名前空間にあるため、使用するのはそれほど悪いことではありませんか?
編集
注意すべき有用な点 (および ToList() の省略に対する議論) は、それを呼び出すコードが以前にデータバインディングのために ToList() に依存していた場合、つまりエラー「ストアクエリに直接データバインディング (DbSet、DbQuery、 DbSqlQuery) はサポートされていません。」実行時エラーだけで、コンパイル時エラーは発生しません。したがって、ToList() が確実に UI 層の前に呼び出されるようにする必要があります。
c# - AsQueryable() は内部でどのように機能しますか?
単純な質問かもしれませAsQueryable()
んが、パフォーマンスが低下することはありますか?
一般的に言えば、RavenDB を使用しており、このような既存のコードがあります。
Where句が私たちを返すのでIDocumentQuery
、それを表現しようとしますAsQueryable()
AsQueryable()
最終的に内部で何をするのかという質問は?どのように変換しますか?のようなメモリ内コレクションの例を含む回答List<>
も非常に役立ちます。
このような: