問題タブ [entity-sql]

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.

0 投票する
1 に答える
1124 参照

entity-framework - Entity Framework 5 SaveChanges が機能しない、エラーなし

このトピックに関する多くの質問のどれも、私の状況に一致していないようです。私は大きなデータモデルを持っています。場合によっては、少数のフィールドのみを UI に表示する必要があるため、すべてを取得する LINQ to Entity クエリを、必要な列のみを取得する Entity SQL クエリに置き換え、Type コンストラクターを使用して、次のように、DbDataRecord ではなくエンティティが返されます。

これは機能し、UI にフィールドが表示されます。変更を加えた場合、UI 要素からタブで移動すると、エンティティ モデルに戻ります。しかし、SaveChanges を実行すると、変更がデータベースに保存されません。ログにエラーは表示されません。ここで、上記のクエリをエンティティ全体を取得する Entity Sql クエリに慎重に置き換えると、次のようになります。

変更はデータベースに永続化されます! そのため、テストとして、エンティティ内のすべての列に名前を付けた最初のクエリと同様の別のクエリを作成しました。これは、2 番目の Entity SQL クエリとまったく同じである必要があります。それでも、データベースへの変更も保持されませんでした。

次のように、返された結果の MergeOption を PreserveChanges に設定して、追跡を開始しようとしました。

しかし、それは効果がありません。しかし実際には、Entity Sql を使用してエンティティ全体を取得しても変更が保持される場合、フィールドのサブセットが取得されるときに異なる動作をする論理的な目的は何でしょうか? これはバグなのだろうか?

0 投票する
0 に答える
296 参照

entity-framework - 非列フィールドをORDER BYする方法は?

2 つのサブクエリの結合である Entity SQL を作成しようとしています。

私が試してみました:

しかし、私は取得し続けます:

編集

これがエンティティ フレームワークです。C# では、クエリは次を使用して実行されます。

Entity SQL を使用する必要があるアプリケーションのごく一部しかありません。一般的に、主な使用例は、「WHERE 列が 'A % value % with % multiple % wildcards'」のようにする必要がある場合です。

ランク欄には問題ないと思います。ユニオンオールで結合された2つの異なるesqlステートメントにオーダーバイを適用しようとしている方法だと思います。誰かが提案できますか:

  1. この種の UNION/UNION ALL ステートメントに ORDER BY を適用する方法
  2. 非実体列式による順序付け方法。

ありがとう。

0 投票する
1 に答える
1407 参照

.net - dbContextを使用して動的WHERE句を作成する方法

ユーザー入力に応じて動的なWHERE句を作成する必要があります。古いものを使用して、を使用ObjectContextして方法を見つけました.Where(<ESql>)

これは新しいプロジェクトであるため、通常は新しいDbContextを使用します。DbContextからObjectContextを取得する方法を知っています。

しかし、それでは何ですか?

EDMXジェネレーターは、列名がテーブル名と同じであり、DBスキーマを制御できない場合、列名を破棄するため、オプションを使用するDbContext.Database.SqlQueryか、オプションではないようです。EDMXジェネレーターによる列名の変更を停止する方法をObjectContext.CreateQuery参照してください。

オープンソースソリューションへの依存は望んでいません。

追加した

その間、ワイルドカードが必要ないことを顧客に話したので、dbConctextでContains()を使用できます。

ただし、dbContextでESql Where()を使用する方法を知りたいのですが。

0 投票する
1 に答える
324 参照

entity-framework - エンティティSQLとCreateQueryのどちらかが機能し、同じクエリに対して他のエラーが発生する

次のコード行を使用して、「ActivityEntity」タイプのオブジェクトのみを返すクエリを作成できます。

..そしてクエリの実行は期待どおりに機能します。しかし、私は実際にエンティティSQL構文を使用してクエリを作成したいので、上記を次のコードに変換しようとしました...

...これを除いて、次のエラーが発生します...

タイプ'MyNamespace.ActivityEntity'が見つかりませんでした。必要なスキーマがロードされ、名前空間が正しくインポートされていることを確認してください。

...両方のコードセットが同じC#ファイル内にあるため、強く型付けされたバージョンのコードは問題なく機能するため、名前空間に問題が発生することはありません。この問題を解決するためのアイデアはありますか?

ノート:

これが違いを生むかどうかはわかりませんが、Entity Frameworkはコード生成戦略がNoneで設定されており、使用する独自のクラスを作成しました。しかし、私はそれらをEdmEntityTypeAttribute属性でマークしました。

0 投票する
2 に答える
258 参照

entity-framework - Entity SQL での空間サポート

アプリケーションで動的クエリをサポートするために Entity SQL を生成しています。ただし、Entity Framework 5 を使用して Entity SQL で空間条件を指定する方法を見つけることができませんでした。

次のような空間フィールドを含むエンティティを持つモデルに対して Linq to Entities を使用したクエリ:

次のような SQL Server 2012 に期待される SQL を生成します。

上記の Linq to Entities クエリを ESQL を使用してどのように書き換えますか? それともこれは不可能ですか?

0 投票する
1 に答える
1136 参照

c# - Linq-To-Entities 'Contains' 節 1-多関係

次のような (簡略化された) テーブル構造を考えてみましょう。

[ユーザー]

  • エンピッド
  • 名前

【予定】

  • (FK_APPT_USER) EMPID
  • APPTTYPEID
  • 完了

各ユーザーは 0..* の予定を持つことができ、それぞれが多数の APPTYPEID の 1 つであり、完了または未完了のいずれかになります。

IQueryable[USER] クエリの結果セットをフィルター処理して、typeID (1 など) の appt を持ち、COMPLETE フィールドが値のリストにあるユーザーのみが含まれるようにします。これは、ユーザーが特定の予定の種類に対して完了したユーザーのみを表示するか、完了していないユーザーのみを表示するかを選択できるようにする gridview フィルターの一部として実行しています。

リストと比較している値が USER オブジェクトと 1 対 1 の関係にある場合、これは非常に簡単です。次に例を示します。

しかし、予定テーブルのような1対多の関係でそれを行う方法がわかりません。エンティティSQLを概念化しようとすると、頭がいっぱいになります。誰でもこれを行う方法を説明できますか?

0 投票する
1 に答える
280 参照

c# - ESQL が機能しない

私は WCF、エンティティ フレームワーク、セルフ トラック ソリューションに取り組んでいます。

ESQL に問題があります。

queryResult.Count()エラーの原因: 「'achAccID' は、現在読み込まれているスキーマのタイプ 'PatientModel.AccHosp' のメンバーではありません」

私はPatientModel.edmxファイルの下で見つけました、<EntityType Name="AccHosp">そこの下にあります<property Name="achAccID" Nullable="false" Type="int">

では、本当の問題は何ですか?

0 投票する
0 に答える
91 参照

.net - EntitySQL で同等の SelectMany

フィールドの 1 つがリストにある E-SQL クエリと戦っています。私の問題は、これをどのように平坦化するかです。私のクエリは次のとおりです。

問題は、出力の各レコードが ApplicantIssue ではなく、ApplicantIssue のリストであることです。

次のようなものを使用してdでflattenを使用してみました

しかし、それはエラーを出しました:

FLATTEN メソッドの目的であると思っていた SelectMany でこれを達成できたかもしれませんが、正しく使用していないようです。

任意の支援をいただければ幸いです。

いずれにせよ、それがクエリの目的である場合は、最初の項目をスキップしてグループ内のすべてのレコードを選択することです。

私はEntityFramework 4.3を使用しています

0 投票する
1 に答える
1384 参照

sql - Entity Framework で正規表現を使用して検索する

データベース テーブルで文字列パターンを検索したい。

検索パターンは、ユーザーが入力した単なる文字列です。ただし、検索するフィールドの間にスペースを入れたり、ユーザーが文字列にスペースを入力したりすることができます。

だから私は正規表現を作成したいので、文字列が「Test」の場合、間にスペースが含まれている可能性のある正規表現を探します。

Entityフレームワークで、またはESQLを使用してこれを行う方法を誰かが提案できますか?