- ふらっと C#,C♯,C#(初心者用) Part123 [無断転載禁止]©2ch.net
98 :デフォルトの名無しさん[]:2016/08/03(水) 13:41:35.76 ID:m0rhFcyF - Attaching an entity of type failed because another entity of the same type already has the same primary key value.
主キーが二つあるってエラーなのかなこれ AがBクラスのリストを持っている構造でエラーが起きています
|
- ふらっと C#,C♯,C#(初心者用) Part123 [無断転載禁止]©2ch.net
102 :デフォルトの名無しさん[]:2016/08/03(水) 14:21:55.96 ID:m0rhFcyF - やろうとしているのは、>>20です。
コードとかあったり、またレスで参考になるのが多いので、三つの関係を二つの関係にして考え直したら詰まっているので聞きに来ました。 俺が持つ写真リスト、友人リストってのをなくして、 単純に写真と友人の関係で考えようとしています。 写真リスト:持っている写真 友人リスト:写真に写っている人達 写真1にはX, Y, Zが写っている 写真2にはX, Wが写っている 写真3にはX, Zが写っている 写真を写真DBに登録→映っている人を友人DBに登録って形にしようとしているところです。 写真DBに写真を登録する時には、紐付け対象の友人DBが存在しないので写真のみ登録して、 友人DBに友人を登録する時には、写真DBのIDを外部キーにしてどの写真の情報なのかも登録しようとしています。 そしたら、登録はできるのですが…友人を登録する時に関係のない写真に新規追加などがされて数が異常に増える問題が起きてしまいます。 http://mslaboratory.blog.eonet.jp/default/2012/05/entity-framewor-2c13.html を参考にして、写真一枚一枚のDBを抜き出して、UnchangedやAttachとか試みているけど効果がないorエラー頻発… http://ideone.com/e.js/CrtNh1 コードは必要そうなところを抜き出して書き直したやつが上
|
- ふらっと C#,C♯,C#(初心者用) Part123 [無断転載禁止]©2ch.net
103 :デフォルトの名無しさん[sage]:2016/08/03(水) 14:30:49.38 ID:m0rhFcyF - ちなみに参考にしたのは>>40
これを綺麗に書き直したかったけど俺にはできなかった…
|
- ふらっと C#,C♯,C#(初心者用) Part123 [無断転載禁止]©2ch.net
105 :デフォルトの名無しさん[sage]:2016/08/03(水) 14:49:42.49 ID:m0rhFcyF - >>104
三つ目のテーブルの話だよね それも考えたんだけど中間テーブルとかの話で勝手に作られるってあるみたいだから それを利用しようとして見たら本当にテーブルできてる ただ異常に値が増えるから困ってるってとこですわぁ…
|
- ふらっと C#,C♯,C#(初心者用) Part123 [無断転載禁止]©2ch.net
109 :デフォルトの名無しさん[]:2016/08/03(水) 15:06:56.64 ID:m0rhFcyF - >>106-107
答えてくれてありがとう。 個人的な課題の話で、構造を書き換えるのが無理なんだわ… >>106のはおそらくクラス設計からやり直せって話なんだろうけども、 今は課題に対してこのクラス設計でって話になっているから変えられない… >>107も同様で、コードファーストなのでデータファーストに切り替えれないんよ
|
- ふらっと C#,C♯,C#(初心者用) Part123 [無断転載禁止]©2ch.net
111 :デフォルトの名無しさん[]:2016/08/03(水) 15:16:54.63 ID:m0rhFcyF - >>108
以前はありがとう ドヤアアアアアアアアアしたくてこっそりやってたけどできんかった コードは>>102がほぼ全て データは他のところから取ってきているから書けんけどデータの取得方法だけが違うだけで内容としては変わってないと思う >>110 操作とかデータを取得することはできないってことなのかな 中間テーブルが作られるだけで意味ないとイメージすればよろしいのだろうか ただ、中間テーブル云々の前に 友人に写真リストを追加してDB保存すると、写真に新規追加される問題があるから この問題は解決しないといけないという現状。たぶんこの問題をクリアしないと結局次に進めない 中間テーブルって話ではないんじゃないかなってなってて、上の方のサイトを見てAttachとかやっていたところ
|
- ふらっと C#,C♯,C#(初心者用) Part123 [無断転載禁止]©2ch.net
115 :デフォルトの名無しさん[sage]:2016/08/03(水) 15:25:59.10 ID:m0rhFcyF - >>113
データを写真以外でも良いから簡単な例でってことかな ちょっと組み換えてやってみるよ >>114 これってC#の話でなくその話なんか 最近C#始めたばかりでどれがどれでなんてわからんのよね
|
- ふらっと C#,C♯,C#(初心者用) Part123 [無断転載禁止]©2ch.net
118 :デフォルトの名無しさん[]:2016/08/03(水) 15:58:47.02 ID:m0rhFcyF - 試しに超簡単な例でやってみたら問題なく動いた
ただ、四層構造で今DBにデータ格納してるのだけどそれが原因なのかなって思ってきた… using( var db = new DbCntext ) { } 別のとこに存在する上記のコードで変更すると、関連するデータがすべて変わる雰囲気がある
|
- ふらっと C#,C♯,C#(初心者用) Part123 [無断転載禁止]©2ch.net
120 :デフォルトの名無しさん[sage]:2016/08/03(水) 16:42:27.07 ID:m0rhFcyF - >>119
そこ考えているとこでどういう意味があるのだろうかは効果があってから考えようとしていた アタッチは接続的な意味があると思ってて取ってきたものに接続することで変更を許さなくするものだと勝手に思い込んでる 参考はこれ http://mslaboratory.blog.eonet.jp/default/2012/05/entity-framewor-2c13.html
|
- ふらっと C#,C♯,C#(初心者用) Part123 [無断転載禁止]©2ch.net
121 :デフォルトの名無しさん[sage]:2016/08/03(水) 16:43:39.18 ID:m0rhFcyF - 本当はimageを入れれば良いんじゃないかと思ってるのだけど入れると
>>98のエラーが出てくる どの値が被っているのかが全然わからない…
|
- ふらっと C#,C♯,C#(初心者用) Part123 [無断転載禁止]©2ch.net
123 :デフォルトの名無しさん[sage]:2016/08/03(水) 16:56:52.39 ID:m0rhFcyF - >>122
もしかしてなんだけど 写真リストが持つ友人リスト 友人リストが持つ写真リスト 写真リストが持つ友人リスト…ってループするから 1つ目の友人リストと、2つ目の友人リストが被って〜…とかありえるのかな 今回のやつで中間テーブルを使用せずに>>110が言うようにするならどうすれば良いんだろう 写真リストは写真情報 友人リストは写真情報 同じ写真情報テーブルを持てば良いのかな それとも四つのクラスだろうか>>106のような
|
- ふらっと C#,C♯,C#(初心者用) Part123 [無断転載禁止]©2ch.net
125 :デフォルトの名無しさん[sage]:2016/08/03(水) 17:01:47.79 ID:m0rhFcyF - >>124
別のusing(var db = new .....)の中でのインスタンスと紐付ける場合に必要って認識で良いのかな
|
- ふらっと C#,C♯,C#(初心者用) Part123 [無断転載禁止]©2ch.net
127 :デフォルトの名無しさん[sage]:2016/08/03(水) 17:27:13.60 ID:m0rhFcyF - >>126
それで今考え直してるところ。その三つ目のテーブルでおそらく 撮影情報テーブル 写真番号 被写体 1 X 1 Y 1 Z 2 X 3 Y 3 Z こんなテーブル作るって意味よね。 この場合このテーブルには写真と友人のリストを持たせる そして写真と友人の相互のリストを消し去る ってのは問題なくできそうなんだけど関係性を繋げるキーってなにか設定いるかな 写真番号と被写体はそれぞれのテーブルの外部キーになるとは思うのだけども
|
- ふらっと C#,C♯,C#(初心者用) Part123 [無断転載禁止]©2ch.net
129 :デフォルトの名無しさん[]:2016/08/03(水) 17:41:19.97 ID:m0rhFcyF - >>128
おおわざわざありがとう http://ideone.com/DiTuFt 一応俺も書いてみたけど少し違うね…ここはリストで持つ必要や、写真・友人との関連性は必要ないのかな リストだとまた変な感じになるのか… そのPictureIdとかは重複を許すってので合ってるよね
|
- ふらっと C#,C♯,C#(初心者用) Part123 [無断転載禁止]©2ch.net
134 :デフォルトの名無しさん[sage]:2016/08/03(水) 22:43:54.41 ID:m0rhFcyF - >>133
おお 長々とありがとう こちらもなんか変な問題にぶちあたってたとこで困ったらここに来るようになった 一番始めにデータには紐付けてはしてないのね あとで紐付ける感じなのですな まだ全然わからないコードが多いからまずはべんきょうしてくるわ!!!!!
|