問題タブ [navigation-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.
entity-framework-4 - EF ナビゲーション プロパティのループの問題
現在、次のようなデータベースがあります
エンティティ フレームワーク 4.0 のデザイナーを使用して 2 つのテーブルを追加すると、両方のクラスでナビゲーション プロパティが取得されます。
現在、個人テーブルには約 300 万以上のレコードがあり、住所タイプには約 50 程度のレコードしかありません。誰かのステータスを更新し、何らかの理由で変更の保存を呼び出すと、更新に永遠に時間がかかります。コード実行の途中で一時停止してデバッグすると、FixupAddressStatusLookup というメソッドになります。ここで何が起こっているのか正確にはわかりませんが、同じ addressstatustype を持つ Person レコードのサブセットをループしているように見えます。それは私の最善の推測です。デザイナーで AddressStatusLookup クラスから Person ナビゲーション プロパティを削除すると、コードはすぐに実行されます。ここで何が起こっているのか、誰か説明できますか? AddressStatusLookup で Person へのナビゲーション プロパティを設定すると、このような遅延が発生するのはなぜですか?
ありがとう
.net - Windowsフォームのデータバインディングとプロパティパス:null可能性を処理する方法は?
Windows フォーム プロジェクトでMVVMパターンを使用してマスター/詳細シナリオを実装しようとしています (私は怒っています)。次のビュー モデルを検討してください。
次のコード (および Windows フォーム データバインディングでサポートされているプロパティ パス) を使用して、DetailViewModel の SubProperty を TextBox にバインドしようとしています。
SelectedDetailがnullになるまで(WPFのように)問題なく動作します(私のロジックでは、SelectedDetail nullはマスタービューで何も選択されていないことを意味します)。SelectedDetail が null の場合、ArgumentNullException (パラメータ名: コンポーネント) が発生しました。
「親」プロパティ (ナビゲーション パス内) の null 可能性を処理する方法はありますか?
例外スタックトレースは次のとおりです。
c# - エンティティへのナビゲーション プロパティであるフィールドによる並べ替え - Linq to Entity
EF モデル内のユーザー エンティティのナビゲーション プロパティである列で注文する必要があるシナリオがあります。
エンティティ: ユーザー --> 国 1:n の関係
単純な SQL クエリは次のようになります。
それで、次のようにLinq to Entitiesを使用して上記のSQLクエリを複製しようとしました-(遅延読み込みが有効になっています)
しかし、このクエリは、上記のネイティブ SQL クエリのように国名でソートされた国を返しません。
ただし、もう少し続けて、次のことを行いました。
しかし、enumeratedUser オブジェクトで約 50 レコードの順序付けを行うには、約 50 分かかりました。7秒
Enumerable を省略し、匿名型を返さずに行うより良い方法はありますか?
ありがとう
編集
EF プロバイダーは MS SQL ではなく MySQL であることを忘れていました。実際、MS SQL のレプリケートされたデータベースで同じクエリを試したところ、クエリは正常に機能しました。つまり、国名が正しく順序付けられているため、MySQL から結果セットを取得して順序を実行する以外に選択肢がないように見えます。列挙可能なオブジェクトのメモリから
.net - EF 4 ナビゲーション プロパティの質問
TableA に TableB への 2 つのリレーションシップ参照があり、TableB が主キーであるとします (TableA の FK 名として PrimaryBKey 列と SecondaryBKey 列があるとします)。だから私はエンティティを持っています:
EF が命名スキームをどのように導出するかについてのドキュメントはありますか? また、変更することはできますか? テーブルを再生成すると、リレーションシップの順序が変更されると開発者から言われました。つまり、もともとエンティティは次のようにマッピングされていたということです。
しかし、彼らはそれが後で次のように切り替えられたと言いました:
それは可能ですか?これを確認するための命名スキームに関するドキュメントがまったく見つかりません。
ありがとう。
silverlight - 複合キーを使用してエンティティのナビゲーション プロパティを更新するにはどうすればよいですか?
複合主キーを持つエンティティに対して WCF Data Services を使用すると問題が発生します。Silverlight 4 ビジネス アプリケーション テンプレートを使用しており、関連するテーブルのデータベースに対してエンティティ データ モデル (EDM) を作成し、Web プロジェクトでこの EDM 用の WCF データ サービスを作成しました。Silverlight プロジェクトには、WCF データ サービスへのサービス参照があります。これまでのところすべてのかなり標準的なもの:)
簡潔さとデバッグの容易さのために、これを次のような非常に単純なシナリオに絞り込みました。
Lookup
テーブルには列Id
とがありますData
。Lookup2
テーブルには列Id
とがありますData
。MyData
テーブルには、列、、、およびLookupId
があります。Lookup2Id
SomeDate
ExtraData
LookupId
table への外部キーLookup
です。Lookup2Id
table への外部キーLookup2
です。- 列
LookupId
、Lookup2Id
、およびSomeDate
は、テーブル の主キーを形成しますMyData
。
CollectionViewService
次に、個別の を使用して、ルックアップ テーブルから個別の にデータをロードできますDataServiceCollection
。CollectionViewSource
また、メイン データを3 番目の を介して別のデータにロードしますDataServiceCollection
。コントロールのItemsSource
プロパティについては、関連する にバインドしてから、そのプロパティを関連するナビゲーション プロパティにバインドします。これまでのところ、これはすべて正常に機能します。ComboBox
CollectionViewSource
SelectedItem
次に、を呼び出すハンドラーを含む [変更を保存] ボタンを追加します。フィールドの値を変更して[変更を保存] をクリックすると、変更は問題なく保存されます。ただし、ナビゲーション プロパティのいずれかの値を変更すると、次の呼び出し時に例外が発生します。Click
BeginSaveChanges
ExtraData
BeginSaveChanges
リクエスト ストリームの処理中にエラーが発生しました。プロパティ 'Lookup' の値を設定中にエラーが発生しました。値が正しいことを確認してください。
外部キーが複合キーの一部にならないように EDM をさらに単純化すると、変更を正常に保存できますが、実際のアプリケーションの複合キーはデータ モデルの重要な部分です。
私が間違っていることと、複合キーの一部を形成するナビゲーション プロパティを変更する方法について何か提案はありますか?
ありがとう、デレク。
asp.net - RadGridの列ナビゲーションプロパティの設定
RadGridに問題があります...aspxファイルでナビゲーションプロパティフィールドを使用してグリッドの列値を設定する方法を教えてください。
私はエンティティを使用しており、別のテーブル「ステージング」へのフィールドプロセスの外部キーを持つテーブルSapDocumentsを持っています。
現時点では、グリッドの値はnullになっています...
>>
これらの2つの列の値を、ナビゲーションプロパティの値で設定する必要があります。次のようにアクセスできます。
- SapDocuments.Staging.Process;
SapDocuments.Priorities.Priority;
/li>
背後にある私のコードはこれです:
c# - コードビハインドでナビゲーションプロパティの値を設定するにはどうすればよいですか?
と呼ばれるエンティティがCost
あります。これには、次の必須プロパティがあります。CostType
このCost
クラスにはGetNew()
、Costのすべてのデフォルトを設定するメソッドがあります。
これLists.CostTypes
は、起動時にEFから取得され、ComboBoxesで使用される静的リストです。
最初にメソッドでCostTypeを設定した後、コード内でCostTypeを設定する際に問題が発生しますGetNew()
。
たとえば、次のコードはExcelファイルを読み取り、Excelファイルの列に基づいてデフォルトのタイプを設定します。一致するものが見つからない場合はnullを設定します。
私の問題は、保存操作中に次のエラーが発生することです。
操作が失敗しました:1つ以上の外部キープロパティがnull許容でないため、関係を変更できませんでした。リレーションシップに変更が加えられると、関連する外部キープロパティがnull値に設定されます。外部キーがnull値をサポートしていない場合は、新しい関係を定義するか、外部キープロパティに別の非null値を割り当てるか、関連のないオブジェクトを削除する必要があります。
私の追加操作は次のようになります。
- Excelファイルを読み取るときにコストを手動で設定するコード行を削除すると、保存は正常に機能します。
- Lists.Costs [2]を読み取るようにコード行を変更すると、問題なく保存されます。
- デフォルトを設定しているコード行を削除すると
GetNew()
、CostTypesのPKルールに違反しているというエラーが表示されます。これは、CostTypeを挿入しようとしていることを意味します。 - Typeを表示しているComboBoxを別のものに変更しても、同じエラーが発生します。
- Excelファイルからコストを読み込んだ後、タイプを変更して保存しようとすると、通常の追加/編集フォームで同じエラーがスローされます。Excelファイルを読み込まない場合は、正常に機能します。
私はまだEntityFrameworkを学んでいますが、これまでのところ、使用するのはフラストレーションと頭痛の種に過ぎません。誰かが私の問題が何であるか、そして私がそれをどのように修正できるか知っていますか?
編集
これがSlaumaから要求された情報です。私はそれをシンプルに保ち、無関係なオブジェクトを除外しています
Costs
あるテーブルにありCostTypes
、別のテーブルにあります。データベースでは、Costs.TypeId
列をnullにすることはできず、への外部キーCostTypes
です。両方のテーブルのId
フィールドは自動生成されます。私のEFモデルは、2つのデータベーステーブルが追加された一般的なモデルです。私が行った唯一の変更は、一部のフィールドの名前を変更し、
CostTypes.Costs
Navigationプロパティを削除することでした。インポートされるExcelファイルは、ほとんどのコストを一致するものにマップしますが
CostType.Name
、Excelファイルの文字列がに一致しない可能性があるCostType
ため、Lists.CostTypes.FirstOrDefault(t => t.Name == row[0].ToString()) can assign a
NULLvalue to the
Cost.Typeproperty. That doesn't seem to be a problem though, because the form still comes up with the list of costs and their default selected items. Item's with a
NULLCostType do not have an item selected in the CostType
ComboBox`を実行し、保存する前に修正する必要がある検証エラーをトリガーします。
CostType
リストをロードするコードは次のとおりです。
ApplyOrder
コードはここにあります。
GetListメソッドはから呼び出されます
lambda - EF 4.1コードファースト:コレクションプロパティのカウントでエンティティを選択する方法
Tag
という名前のナビゲーション プロパティ (コレクション) を持つエンティティがありますArticles
。には、関連付けられたカウントを保存するために使用されるTag
名前の無視されたプロパティがあります(実行時およびビューで使用するため-DBに対して無視されます)。見る:ArticleCount
Article
データベースに対する 1 つのクエリですべてのTag
s (または 1 つ)を選択するにはどうすればよいですか?ArticleCount
entity-framework-4.1 - EF 4.1 コード ファースト: これらのエンティティを設計およびマップする方法は?
Member
、AuthenticationToken
、およびの3 つのエンティティがありEmail
ます。
- それぞれに多くの
Member
可能性がありますAuthenticationTokens
- それぞれに1 つまたは 0
AuthenticationToken
がある場合がありますEmail
- それぞれ
Member
が0 または 1PrimaryEmail
を持つ場合があります(Emails
表から)。本当にこれPrimaryEmail
はAuthenticationToken
s に関連付けられ たものの 1 つですEmail
ので、私は持っています:
上記で説明した設計では、Member と AuthenticationToken を追加できますが、E メールを Member または AuthenticationToken (またはその両方) に添付したい場合、次のエラーが発生します。
INSERT ステートメントが FOREIGN KEY 制約などと競合しました。
このデザインは正しいですか???目的を達成するためにテーブル (およびエンティティ) を設計するにはどうすればよいですか? また、エンティティをコード ファーストでマップするにはどうすればよいでしょうか。アイデアはありますか?