問題タブ [entityset]
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-to-SQL+1対多+DataBindingの削除
LINQ-to-SQLを使用して、1対多の関係にある2つのテーブルを持つデータベースからデータをロードします(1つのレシピには多くの材料が含まれています)。
レシピをロードすると、LINQはIngredientオブジェクトをListBoxにバインドされているEntitySetに取得します。
レシピからいくつかの材料を削除したい場合、「レシピと材料の間の関係を削除しようとしました。しかし、関係の外部キーの1つ(Ingredient.RecipeID)をnullに設定できません。
DBMLファイルに「DeleteOnNull="true"」を追加することで、よく知られた解決策を使用してこの問題を解決しました。ただし、この設定を追加すると、DBから取得した成分オブジェクトを削除する場合にのみ問題が削除されます。
問題は、コードで作成され(レシピに追加され)、IngredientsのEntitySetコレクションに追加され、SubmitUpdatesが呼び出される前に削除されたIngredientオブジェクトにあります。その後、同じ例外が再び発生します。これは通常、ユーザーが材料を追加し、間違いを犯し、レシピから材料を消去するときに、新しい未保存のレシピで発生します。DBMLの両方の'AssociationName="Recipe_Ingredient"'行にDeleteOnNullを追加しました。
そのようなオブジェクトをどのように削除する必要がありますか?現時点で私が目にしている唯一の解決策は、DataContextの下にないコレクションに材料をロードし、保存するときにレシピからすべての材料を削除して、そのキャッシュから再度追加することです。
linq - IList<..> ではなく EntitySet<...> を返す .ToList() に苦労している
Id
オブジェクト階層の数レベルの深さのコレクションから のリストを取得しようとしています。を実行しようとすると、代わりに取得されToList()
続けます..これは、単一のインスタンス オブジェクトではなく であるため、インスタンスのプロパティEntityList<>
を取得できないことを意味します。BarId
EntitySet
Enumerable
ではなくchildren2List
として返され続けます。そのため、からのリストを取得するのに苦労しています。EntitySet<Bar>
IList<Bar>
BarId
children2List
助けてください!
.net - EntitySet をどのようにソートしますか
MSDN のドキュメントには、EntitySet が IBindingList を実装すると記載されています。
( http://msdn.microsoft.com/en-us/library/bb546190.aspxの「EntitySet へのバインディング」を参照)
ただし、EntitySet がこのインターフェイスを実装していないことは明らかです。
では、どのように並べ替えるのですか?
コンテキストとして、このセットを WPF ListView にバインドしています。
私が解決しようとしている問題のより広いコンテキストについては、この投稿を参照してください。
wpf - 変更を通知しないWPFバインディング
WPF の並べ替え/バインドの問題があります。(免責事項:私はWPFとデータバインディングに非常に慣れていないので、本当にばかげた質問をしていたら申し訳ありません:-))
まず、プロパティ Bookings をContact
持つlinqToSql エンティティ クラスがあります。EntitySet<Booking>
この Bookings プロパティを に直接バインドするListView
と、アプリケーションは で選択した項目への変更を正しく通知するように見えListView
、テキスト ボックスが{Binding Path=Bookings/Comments}
正しく更新されます。
ただし、EntitySet を並べ替える方法を見つけることができないように見えるため (この投稿を参照)、代わりに Observable コレクションにバインドしようとしています。
しかし、これはコメントテキストボックスに正しく通知されないようで、更新されます。
バインドの前後でデータをソートするためのソリューション、または機能する別のソリューションを誰かが持っている場合、それは大歓迎です。
wpf - Linq と ObservableCollection
WPF アプリケーションの Linq と ObservableCollections に問題があります。
問題のコンテキスト:
User と BankAccounts の 2 つのテーブルを持つ非常に単純な SQL データベースを作成しました。User テーブルは、BankAccounts テーブルと 1 対多の関係にあります。次に、Linq-to-SQL データクラスを作成しました。これは正常に機能しました ==> 2 つのテーブル間の関連付けも検出されました。
次に、正常に動作するすべてのユーザーを取得する関数を作成しました。
ここで、各ユーザーに新しい BankAccount を追加したいとします (可能性は低いですが、それでもなお)。次のコードを追加できます
上記はすべて正常に動作します。BankAccounts プロパティは、データベースと Linq DataClasses の関連付けにより、自動的に User クラスの一部になります。
ただし、私のアプリケーションでは、最初にクエリ結果を ObservableCollection に追加します。これにより、あらゆる種類のデータバインディングと変更通知を使用できます。これは、次のコードによって実現されます。
問題: ObservableCollection 内では、ユーザーの BankAccounts プロパティを操作できません。タイプが EntitySet<> になっているためです。そのため、次のステートメントはもう実行できません。
どういうわけか、クエリ結果が観察可能なコレクションに追加されると、 user.BankAccounts プロパティにアクセスできなくなります。ただし、BankAccounts プロパティをリストボックスなどの任意のコントロールにバインドすることは可能であり、正しいデータが含まれています。
これらの「関連付けられた」プロパティにアクセスできるobservableColllction(または同様のコレクション)を作成する方法はありますか?解決が本当に待ち遠しいです。
前もって感謝します!よろしくお願いします、
Bas Zweeris E: Bas.Zweeris@Capgemini.com
asp.net-mvc - 同じページ上の ASP.NET MVC モデル バインド関連エンティティ
この問題は、私を数時間夢中にさせています...
私のドメインには、互いに関連する 2 つのエンティティがSku
あり、Item
. 各 SKU には多くのアイテムを含めることができます。
エンドユーザーが SKU のいくつかのフィールドと各アイテムのいくつかのフィールドを同時に更新できるようにするページを作成しています。
Sku
aとEntitySet
of の両方を受け入れてから、 をItem
に割り当てることで機能するコントローラー コードがいくつかあります。Items
Sku
これは機能しますが、 の 1 回の旅行に加えて、 DefaultModelBinder
for eachを 2 回旅行することに気付きました。がバインドされると、setterが呼び出され、バインダーは正しい値を含む水和コレクションを渡します。ただし、 への呼び出し後、は. これが、コントローラー コードで項目を再割り当てする必要がある理由です。アイテムがバインダーによってコレクションに転送されることを期待していました。これにより、コントローラーメソッドのパラメーターを削除できるため、アイテムごとの余分なトリップがなくなります。なぜこれが機能しないのですか?Item
Sku
Sku
Items
Items
items.Assign
Items.Count
0
Items
items
.net - 並べ替えられた EntitySet を使用した Datagridview? (.NET 3.5)
何時間ものグーグルで見逃したこれに対する簡単な答えがあることを願っています...
データベースからレコードを表示および追加/削除/編集する必要がある DataGridView があります。私は Entity Framework を使用しているため、レコードは最初は EntitySet です。
- 試行 1
BindingSource には並べ替え機能がありますが、DataSource が EntitySet の場合、実際には利用できないようです。
- 試行 2
グリッドにカスタム ソートを実装してみてください。ただし、グリッドがデータバインドされている場合、カスタム ソートは許可されません。
- 試行 3
データに対して Linq クエリを実行し、そこで order 関数を使用します。これは注文したデータを取得するために機能しますが、AllowNew が false に変更されました。強制的に元に戻すことはできますが、DataGridView に追加されたレコードが EntitySet に追加されません (奇妙なことに、すべての更新が反映されます)。
- 試行 4
#3 のとおりですが、BindingSource の AddingNew イベントを処理し、オブジェクトを明示的に作成して EntitySet に追加します。これは、ユーザーがグリッドの下部にある新しいエントリ行を入力すると、デフォルト値でいっぱいの行がデータベースに追加されることを除いて機能します。ユーザーが行を入力し続けると、大量の行が取得されます。だからそれもダメ。
これを行う方法が必要です-確かに、いくつかのデータベースレコードをグリッドに表示し、完全な編集を許可することは、最も基本的な要件です(行をランダムな順序で表示することはあまり役に立ちません)?
最も感謝して受け取った助け...
asp.net-mvc - DeleteOnNull エラー
メイン オブジェクト定義の EntitySet に DB オブジェクトのセットがあります。これは追加と更新をうまく処理しますが、リストからアイテムを削除してもデータベースレコードが削除されないことがわかったので、データリポジトリオブジェクトにレコードを削除するメソッドを作成する必要がありました.使用されているデータコンテキストにアクセスできます。
この削除をメイン オブジェクトに持ち込めるかどうかを調べていたところ、関連付けに DeleteOnNull 属性が見つかりましたが、それを使用すると、「DeleteOnNull は、null 非許容にマップされたシングルトン関連付けメンバーに対してのみ true にすることができます」というエラーが表示されます。外部キー列」。私のコードは次のとおりです。
私のユーザーサイトオブジェクトは
すべてのデータ更新メソッドをメイン ユーザー オブジェクト内に保持するために DeleteOnNull を使用できますか? それともリポジトリ レベルで削除を処理する必要がありますか?
sql - EntitySet クエリ
次のようなクエリを実行しようとしています
MyEntitySet には、MyItem との関連付け PropertyA が 1 つあります。
理想的には、基礎となる SQL クエリは
PropertyA と PropertyB は、クエリしているテーブルの 2 つの主キーであるためです。
しかし、私のトレースは、プログラムが最初に PropertyA を照会して を返しMyEntitySet
、次に PropertyB を照会してを返すことを示しているようですvar results
。
とにかく、単一の SQL ステートメントでこれら 2 つの条件を使用して Linq にクエリを実行させることはできますか?
entity-framework - MVC 1.0 + EF: db.EntitySet.where(something) はまだテーブル内のすべての行を返しますか?
リポジトリで、私はこれを行います:
次に、同じリポジトリ内の別のメソッドでダウンします。これは次のとおりです。
デバッガーでは、結果ビューにそのテーブルのすべてのレコードが表示されますが、次のようになります。
は 1 です (そうあるべきです)。
1 つだけではなく、すべてのテーブル エントリが取得されているのはなぜですか? DBで行フィルタリングが行われていると思いました。
db.EntitySet が実際にすべてをクライアントにフェッチする場合、EF を使用してクライアントのデータライトを維持する正しい方法は何ですか? すべての行をフェッチしても、私がやっていることには対応できません。