C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: コードファーストで多対多のテーブルへの登録


(過去ログ 139 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■81493 / inTopicNo.1)  コードファーストで多対多のテーブルへの登録
  
□投稿者/ しーしゃーぷ (8回)-(2016/09/29(Thu) 11:39:34)

分類:[ASP.NET (C#)] 

2016/09/29(Thu) 12:04:37 編集(投稿者)
2016/09/29(Thu) 12:04:33 編集(投稿者)

<pre><pre>お世話になっております。

VisualStudio 2013でASP.NET MVC5(C#、Razor)アプリケーションを勉強中です。

http://blog.shibayan.jp/entry/20101014/1287061553
等を参考に、以下の通り、コードファーストで多対多のテーブルをSQLServerに作成しました。

■モデル
==============================
//人物TB
public class Cast
{
[Key]
public int CastId { get; set; }
public string CastName { get; set; }
public virtual ICollection<Title> Titles { get; set; } //出演作品一覧
}

//出演作品TB
public class Title
{
[Key]
public int TitleId { get; set; }
public string TitleName { get; set; }
public virtual ICollection<Cast> Casts { get; set; } //キャスト一覧
}

//DBコンテキスト
public class CastDbContext : DbContext
{
public DbSet<Cast> Casts { get; set; } // キャストテーブル
public DbSet<Title> Titles { get; set; } // 出演作品テーブル
}
==============================

上記サイトにあるように、「Cast」と「Title」の中間テーブルが「TitleCasts」として自動的に作成されておりました。
フィールドは「Title_TitleId」と「Cast_CastId」の2つでした。

ここで質問ですが、
この中間テーブル「TitleCasts」は自動的に出来ているのでモデルクラスが定義されておらず、
DBコンテキストにもDbSetがありません。
登録や修正はどのようにするのでしょうか?
何か基本的な考え方が違うのでしょうか?

参考サイトでも良いので教えて頂けると助かります。

宜しくお願い致します。
</pre></pre>
引用返信 編集キー/
■81494 / inTopicNo.2)  Re[1]: コードファーストで多対多のテーブルへの登録
□投稿者/ しーしゃーぷ (9回)-(2016/09/29(Thu) 12:14:58)
No81493 (しーしゃーぷ さん) に返信

自己レスです。解決しました。

Castモデルの「Cast.Titles.TitleId」や「Cast.Titles.TitleName」に値をセットし、
CastsコンテキストにAddすることで、中間テーブル「TitleCasts」テーブルにレコードを追加することができました。

お騒がせしました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -