問題タブ [navigational-properties]
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# - ナビゲーション プロパティを使用して関連アイテムを「追加」するのが遅いですか?
私はDevice
他のリストを持っていDeviceLogEntry
ます。 device.Logs
はナビゲーション プロパティであり、現在、次のような新しいログを追加しています
ログは次のように定義されています
Logs
私の質問は、新しいテーブルを追加する前にテーブル全体をロードすることですか? その場合 (ログには多数のエントリが含まれているため、これは非常に遅くなります)。より良い(より速い)代替手段は何ですか?
entity-framework - Entity Framework - 複数のナビゲーション プロパティから特定の列のみを取得する
ナビゲーション プロパティ ProjectNumbers、Addresses、Contacts、および BBLInfos を持つ Project エンティティがあります。各ナビゲーション プロパティの特定のフィールドのみを選択してビュー モデルに保存しようとしています。
ビュー モデルは次のようになります。
Project DbSet で .Include を呼び出すと、関連するエンティティ全体が含まれるため、機能しません。
関連する各テーブルに個別にクエリを作成し、ProjectId がプロジェクトに一致するエンティティを選択することで、これを機能させることができましたが、4 つの個別のテーブル クエリが必要です。関連エンティティからいくつかの列を選択するだけで、関連エンティティを取得するより効率的な方法はありますか?
これは私が現在行っていることです:
次に、ViewModelSelector は必要なフィールドのみを選択します。
ViewModelSelector 関数は、linq クエリの ".select" 部分を 1 回記述するだけでよいので、再利用できます。内部の ViewModelSelector メソッドは、次のような特定のフィールドのみを選択します。
ありがとう!
c# - 作成時に Entity Framework Code First ナビゲーション プロパティを割り当てる
次の 2 つのクラスがあるとします。
次の方法でそれぞれを作成するとします。
これらのメソッドのいずれかが、適切に割り当てられた外部キーを持つ親オブジェクトと子オブジェクトの両方を作成しますか? 私の直感は、CreateParent は機能するが、CreateChild は機能しないことを示しています。
ありがとうございました!
c# - エンティティへの複数の参照/コレクションの明示的な読み込み
次のエンティティ モデルを検討してください。
私のコードでは、Parent
エンティティをロードしました:
ナビゲーション プロパティを明示的に読み込むには、次を使用します。
ただし、これにより 2 つの DB クエリが発生します。
質問: 単一のクエリで複数のナビゲーション プロパティを明示的にロードできる、より洗練された方法はありますか?
ロードしていない場合はparent
、熱心なロードを行います。
しかし、前述したように、関連するエンティティなしで既に読み込まれています (読み込みコードを変更することはできません)。
json - navプロパティを持つEFシリアル化オブジェクト
API を作成していますが、処理を簡単にするためにデータ モデルをクライアントに送信する必要があるため、クライアント側でも json 構造を実装して維持する必要はなく、新しい空のオブジェクトをシリアル化するだけで済みます。クライアントに渡します。
しかし、nav プロパティ オブジェクトが空の場合、空の配列にシリアル化されるという問題があります。
[]
配列内のオブジェクトではありません。
だから私の質問は、swaggerのドキュメントがどのようにそれを行うかのように、関連するプロパティでオブジェクトをシリアル化するために、誰かが私を正しい方向に向けることができますか?
MVC での基本シリアル化の例: http://pastebin.com/ihF2AeKY
nav props と type を使用した swagger によるシリアル化の例: http://pastebin.com/SxxztnDa
これで、nav props をインスタンス化し、それをオブジェクトに追加してからシリアル化できますが、これは扱いにくく、swagger の例のようにオブジェクトの変更を自動的に追跡することはできません。
編集:
ベースオブジェクトまたはプロップリレーションを変更するとモデルが自動的に追従するため、これは理想的ですが、新しいオブジェクトではプロパティが空であるため、手動で入力しない限り、ナビゲーションプロップは null またはベースの例に示されているように、'[]' のような空のリストなので、nav props 'scheme' は取得せず、ベース オブジェクトのみを取得します。2 番目のペーストビンに示されている完全なツリーを構築するために、ここである種の魔法を行っている Swagger。
これは一種の機能ですが、プロップを手で挿入する必要があるため不器用ですが、これにより、データが入力されているが空のナビゲーション プロップを含む正しいモデルが返されます。
これは私の手作りの new() ボイラープレートの出力です: http://pastebin.com/C4W6Tvsg ご覧のとおり、ナビゲーション プロパティの空のオブジェクトが含まれています。これは、EF がそれを返す方法のようなものです。新しいプロパティやフィールドを追加しても、それをクライアントに送信し、Angular で処理するだけです。
結局のところ、問題は、オブジェクト グラフをトラバースして、そこからスキーマを作成する方法です。これは、オブジェクトを空の状態で熱心にロードする場合と似ています。
このようにもう少し明確になることを願っています。
c# - ASP.NET MVC。Code First Parent ナビゲーション プロパティが自動的に入力されない
これらの POCO クラスを考えると
と
それを投稿してコントローラーにバインドすると、すべてが設定され、すべてのサブアイテムの状態を次のように設定しました。
ただし、modelState には、各項目の「親を null にすることはできません」というエラーが含まれています。そして検証は失敗します。何らかの理由で、「親」プロパティが自動的に入力されません。どうすれば回避できますか?
このようなビューをレンダリングしています。
SubItem には次のようなものがありますEditorTemplate
[Required] parent
カスケード削除のために必要です。
[Required]
すべてがうまく機能しなければ。また、db を保存すると、parent プロパティが追加されます。ただし、カスケード削除は移行時にオフになります。
c# - リレーションシップを含まない結合テーブル
次のデータベースがあります。
テーブル メッセージ:
- 送信されたメッセージを保存する責任は、さまざまな電子メール アドレスに送信されます。
テーブルの電子メール:
- メールアドレス (主キー = Email) の保存のみを担当します (toEmail はテーブル email と関係があります) (Sotres Foo@gmail.com、Foo2@gmail.com など...)
テーブルの連絡先:
- ユーザーの連絡先を保存するために使用されます。(マーク、ジョン、トムなどを保存します...)
表 ContactEmails
- 連絡先は複数の電子メール アドレスを持っている可能性があるため、このテーブルが必要です。(テーブル Emails で見つかった ID を格納します)
とにかくここに質問があり ます。特定の日付に送信されたすべてのメッセージを選択するクエリを作成したいと考えています。連絡先名が存在する場合は、クエリに含めたいと思います。次のクエリを作成しましたが、低速です。
クエリを高速に実行するには、すべての連絡先を辞書に保存し、このクエリを 2 つのクエリに分ける必要がありますか?
すべての連絡先を辞書に保存すると、作業がはるかに効率的になります。しかし、ほとんどの連絡先を必要としないデータベースからすべての連絡先を取得すると、リソースを無駄にしているように感じます。
android - カスタマイズされたナビゲーション ドロワーのボタンのテキストを設定できません
3 つのボタンでカスタマイズされたナビゲーション ドロワーを作成しました。関連付けられているアクティビティに応じて、ボタンのテキストを変更したいと考えています。そこで、LayoutInflater を使用してナビゲーション ドロワーのレイアウトの Java オブジェクトを作成し、そのレイアウト オブジェクトで findViewById を使用して各ボタンのハンドルを取得したときに、各ボタンの Text を設定しましたが、アプリを実行しているときにテキストが表示されません(XML でボタンにテキストを設定していません)。残りはすべて正常に機能しています。
この引き出しを含むメイン アクティビティ ( onCreate() メソッド内)のコードの一部はこちら
c# - Entity Framework (コア) でナビゲーション プロパティをアンダーサンドしようとしています
わからない EF Core のナビゲーション プロパティに関する質問があります。テーブルと関連テーブルがある場合:
今、C# でモデルを実装します。
それは正しい実装ですか?具体的には、抜けたらどうなるか知りたい
Personテーブルから?それは違いを生むでしょうか?また、Role クラスに以下を追加すると、どのような違いがありますか。
それは物事をどのように変えますか?
ありがとうございました