課題08(2/4)
注意
- 以下の設問はリアクションペーパーに「課題08」という節を設けて, 課題名の見出しを付けて 回答すること.
- これらはすべて課題点として成績に算入される課題である .
【課題8-02】データモデリング2
あるウェブアプリで,「書籍」と「著者」というデータを扱う必要があったと仮定する.
ここで「著者」とは,その本の作者・著者のほかに訳者や監修といった役割も含むエンティティである.
これらは 「書籍」多─多「著者」 の多重度を持つ関係であるため,これをデータベース/EF CF で
扱うためには_に示すような,いわゆる対照表となるエンティティ「書籍著者」が必要となる.
なおここでは分かりやすさのためデータアノテーションなどは省略している.
このアプリのER図このためにこのウェブアプリには_に示すクラスが定義されている.
モデルクラス 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| // 「書籍」のためのモデルクラス
public class Book
{
public int Id { get; set; } // ID
public string Title { get; set; } // 書名
// ..以下省略..
}
// 「著者」のためのモデルクラス
public class Author
{
public int Id { get; set; } // ID
public string Name { get; set; } // 氏名
public AuthorRoleType AuthorRole { get; set; } // 役割の種別
// (どこかで定義されている列挙型)
// ..以下省略..
}
//「書籍著者」
/***********************************************/
/* */
/* */
/* 空欄1 */
/* */
/* クラス名: BookAuthor */
/* */
/* (データアノテーションやナビゲーション */
/* プロパティを含むクラスの定義全体を回答せよ) */
/* */
/* */
/***********************************************/
|
またこのウェブアプリのデータコンテキストクラスは_のようになっている.
データコンテキストクラス 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| public class SomeAppContext : DbContext
{
public SomeAppContext(DbContextOptions<SomeAppContext> opt)
: base(opt)
{ }
/****************************************/
/* 空欄2: Book のためのプロパティ */
/* (プロパティ名は適切なものを選ぶこと) */
/****************************************/
/****************************************/
/* 空欄3: Author のためのプロパティ */
/* (プロパティ名は適切なものを選ぶこと) */
/****************************************/
/****************************************/
/* 空欄4: BookAuthorのためのプロパティ */
/* (プロパティ名は適切なものを選ぶこと) */
/****************************************/
}
|
空欄1~4に必要なコードを回答せよ.
Last updated on 2024-06-10
Published on 2024-06-10