質問するログイン新規登録

質問編集履歴

25

2021/01/09 09:13

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -30,7 +30,7 @@
30
30
 
31
31
 
32
32
  (引用) オニオンアーキテクチャとは何か
33
- [https://qiita.com/cocoa-maemae/items/e3f2eabbe0877c2af8d0> ](https://qiita.com/cocoa-maemae/items/e3f2eabbe0877c2af8d0>)
33
+ [https://qiita.com/cocoa-maemae/items/e3f2eabbe0877c2af8d0](https://qiita.com/cocoa-maemae/items/e3f2eabbe0877c2af8d0)
34
34
 
35
35
  ![オニオンアーキテクチャ2](ed788293ccbf0e176e8deeffe5162a26.png)
36
36
 

24

訂正

2021/01/09 09:13

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -6,8 +6,8 @@
6
6
 
7
7
   ・Application serviceとDomain serviceの違いがわかりません。
8
8
 
9
-   Application service :下記のソースコードを例とするとControllerのチェック処理等をApplication Serviceに分ける?
9
+   Application service :下記のソースコードを例とするとControllerのチェック処理等をApplication Serviceに分ける?(ユースケース組立の一部?)
10
-               (ユースケース組立の一部?)
10
+
11
11
    Domain service : 下記のソースコードを例とすると、Controllerで使用しようとしていたRepositoryをDomain serviceに分ける(ControllerでServiceを操作する)
12
12
   
13
13
    のようなことでしょうか?

23

訂正

2021/01/08 08:29

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
    Application service :下記のソースコードを例とするとControllerのチェック処理等をApplication Serviceに分ける?
10
10
                (ユースケース組立の一部?)
11
-   Domain service : 下記のソースコードを例とすると、Controllerで使用しようとしていたRepositoryをサービスに分ける(ControllerでServiceを操作する)
11
+   Domain service : 下記のソースコードを例とすると、Controllerで使用しようとしていたRepositoryをDomain serviceに分ける(ControllerでServiceを操作する)
12
12
   
13
13
    のようなことでしょうか?
14
14
 

22

訂正

2021/01/08 02:54

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
    Application service :下記のソースコードを例とするとControllerのチェック処理等をApplication Serviceに分ける?
10
10
                (ユースケース組立の一部?)
11
-   Domain service : 下記のソースコードを例とすると、Repositoryの操作をサービスに分ける(ControllerでServiceを操作する)
11
+   Domain service : 下記のソースコードを例とすると、Controllerで使用しようとしていたRepositoryをサービスに分ける(ControllerでServiceを操作する)
12
12
   
13
13
    のようなことでしょうか?
14
14
 

21

訂正

2021/01/08 02:54

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
    Application service :下記のソースコードを例とするとControllerのチェック処理等をApplication Serviceに分ける?
10
10
                (ユースケース組立の一部?)
11
-   Domain service : 下記のソースコードを例とすると、Repositoryの操作をサービスに分ける
11
+   Domain service : 下記のソースコードを例とすると、Repositoryの操作をサービスに分ける(ControllerでServiceを操作する)
12
12
   
13
13
    のようなことでしょうか?
14
14
 

20

訂正

2021/01/08 02:51

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -6,8 +6,9 @@
6
6
 
7
7
   ・Application serviceとDomain serviceの違いがわかりません。
8
8
 
9
-   Application service :Controllerのチェック処理等をサービスに分ける(ユースケース組立の一部)
9
+   Application service :下記のソースコードを例とするとControllerのチェック処理等をApplication Serviceに分ける?
10
+               (ユースケース組立の一部?)
10
-   Domain service : Repositoryの操作をサービスに分ける
11
+   Domain service : 下記のソースコードを例とすると、Repositoryの操作をサービスに分ける
11
12
   
12
13
    のようなことでしょうか?
13
14
 

19

訂正

2021/01/08 02:49

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -12,22 +12,19 @@
12
12
    のようなことでしょうか?
13
13
 
14
14
   ・Mvcフレームワーク自体にもStartupにserviceの機能があるようです。
15
-   (コンストラクタでデータのcontext(MvcContext)を利用できたりする)
15
+   (依存性の注入というものが行われているようです。コンストラクタでデータのcontext(MvcContext)を利用できたりする)
16
16
    これはApplication Serviceに該当するのでしょうか。
17
17
 
18
18
 
19
19
  ② 手動トランザクションについて
20
20
   下記に記載のコード(C#)ですが、他の言語でも似たようなことかもしれませんが、
21
21
 
22
-  ORM(C#のEntity Framwork Core)を使用し、RepositoryでSaveChangesAsyncをすればコミットしてくれますが、
22
+  ORM(C#のEntity Framwork Core)を使用し、RepositoryでSaveChangesAsyncをすればコミットしてくれます
23
-  複数のデータを同時更新したい時、トランザクションを手動で実施する場合はど実施すればよいしょうか?
23
+  複数のデータを同時更新したい時、ORM機能でできる時もあります。
24
-  現在context(データ)はRepositoryが持っています。
24
+  また、現在context(データ)はRepositoryが持っています。
25
25
 
26
-  ※モデルの関連モデルであれば、ORMの機能で同時にできますが
27
- 例えば、あるNo発行用のモデルで追加を行ってから、本来のデータモデルを追加をするような時に、
28
-  はORMの機能は実施きなかったので、トランザクションを手動で実施する必要があります。
26
+  れでも任意でトランザクションを手動で実施したい場合はどの層で実施ればよいでしょうか?
29
27
 
30
-
31
28
  よろしくお願いします。
32
29
 
33
30
 

18

訂正

2021/01/07 12:21

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -23,7 +23,7 @@
23
23
   複数のデータを同時更新したい時、トランザクションを手動で実施する場合はどの層で実施すればよいでしょうか?
24
24
   現在context(データ)はRepositoryが持っています。
25
25
 
26
-  ※モデルの関連モデルであれば、ORMの機能で同時にできたりはしますが
26
+  ※モデルの関連モデルであれば、ORMの機能で同時にできますが
27
27
  例えば、あるNo発行用のモデルで追加を行ってから、本来のデータモデルを追加をするような時に、
28
28
   これはORMの機能では実施できなかったので、トランザクションを手動で実施する必要があります。
29
29
 

17

訂正

2021/01/07 11:45

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,5 @@
1
1
  クリーンアーキテクチャ(オニオンアーキテクチャ)について勉強しています。
2
- サービス層とトランザクションについて教えてください。
2
+ サービス層と手動トランザクションについて教えてください。
3
3
 
4
4
  ① サービス層について
5
5
   下記の引用先の記事と図ですが、
@@ -16,7 +16,7 @@
16
16
    これはApplication Serviceに該当するのでしょうか。
17
17
 
18
18
 
19
- ② トランザクションについて
19
+ ② 手動トランザクションについて
20
20
   下記に記載のコード(C#)ですが、他の言語でも似たようなことかもしれませんが、
21
21
 
22
22
   ORM(C#のEntity Framwork Core)を使用し、RepositoryでSaveChangesAsyncをすればコミットしてくれますが、

16

訂正

2021/01/07 11:45

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -4,15 +4,16 @@
4
4
  ① サービス層について
5
5
   下記の引用先の記事と図ですが、
6
6
 
7
-  Application serviceとDomain serviceの違いがわかりません。
7
+  Application serviceとDomain serviceの違いがわかりません。
8
8
 
9
-  Application service :Controllerのチェック処理等をサービスに分ける(ユースケース組立の一部?)
9
+   Application service :Controllerのチェック処理等をサービスに分ける(ユースケース組立の一部?)
10
-  Domain service : Repositoryの操作をサービスに分ける
10
+   Domain service : Repositoryの操作をサービスに分ける
11
11
   
12
-  のようなことでしょうか?
12
+   のようなことでしょうか?
13
13
 
14
-  そしてMvcフレームワーク自体にもStartupにserviceの機能があるようです。
14
+  Mvcフレームワーク自体にもStartupにserviceの機能があるようです。
15
-  (コンストラクタでデータのcontext(MvcContext)を利用できたりする)
15
+   (コンストラクタでデータのcontext(MvcContext)を利用できたりする)
16
+   これはApplication Serviceに該当するのでしょうか。
16
17
 
17
18
 
18
19
  ② トランザクションについて

15

説明

2021/01/07 11:41

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -112,5 +112,5 @@
112
112
  Startup
113
113
  ```C#
114
114
  services.AddDbContext<MvcDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("MvcConnection")));
115
- services.AddRepository();
115
+ services.AddTransient<IDepartmentRepository, DepartmentRepository>();
116
116
  ```

14

訂正

2021/01/07 11:35

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -11,7 +11,7 @@
11
11
   
12
12
   のようなことでしょうか?
13
13
 
14
-  そしてMvcフレームワーク自体にもserviceの機能があるようです。
14
+  そしてMvcフレームワーク自体にもStartupにserviceの機能があるようです。
15
15
   (コンストラクタでデータのcontext(MvcContext)を利用できたりする)
16
16
 
17
17
 

13

訂正

2021/01/07 11:33

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -2,6 +2,8 @@
2
2
  サービス層とトランザクションについて教えてください。
3
3
 
4
4
  ① サービス層について
5
+  下記の引用先の記事と図ですが、
6
+
5
7
   Application serviceとDomain serviceの違いがわかりません。
6
8
 
7
9
   Application service :Controllerのチェック処理等をサービスに分ける(ユースケース組立の一部?)

12

訂正

2021/01/07 11:32

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -9,7 +9,8 @@
9
9
   
10
10
   のようなことでしょうか?
11
11
 
12
+  そしてMvcフレームワーク自体にもserviceの機能があるようです。
12
-  そしてフレームワーク自体にもserviceの機能があるようです。(コンストラクタでデータのcontext(MvcContext)を利用できたりする)
13
+  (コンストラクタでデータのcontext(MvcContext)を利用できたりする)
13
14
 
14
15
 
15
16
  ② トランザクションについて

11

訂正

2021/01/07 11:27

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -6,9 +6,12 @@
6
6
 
7
7
   Application service :Controllerのチェック処理等をサービスに分ける(ユースケース組立の一部?)
8
8
   Domain service : Repositoryの操作をサービスに分ける
9
-
9
+  
10
10
   のようなことでしょうか?
11
11
 
12
+  そしてフレームワーク自体にもserviceの機能があるようです。(コンストラクタでデータのcontext(MvcContext)を利用できたりする)
13
+
14
+
12
15
  ② トランザクションについて
13
16
   下記に記載のコード(C#)ですが、他の言語でも似たようなことかもしれませんが、
14
17
 

10

訂正

2021/01/07 11:26

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -4,7 +4,7 @@
4
4
  ① サービス層について
5
5
   Application serviceとDomain serviceの違いがわかりません。
6
6
 
7
-  Application service :Controllerのチェック処理等をサービスに分ける(ユースケース組立)
7
+  Application service :Controllerのチェック処理等をサービスに分ける(ユースケース組立の一部?)
8
8
   Domain service : Repositoryの操作をサービスに分ける
9
9
 
10
10
   のようなことでしょうか?

9

訂正

2021/01/07 11:24

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -13,12 +13,11 @@
13
13
   下記に記載のコード(C#)ですが、他の言語でも似たようなことかもしれませんが、
14
14
 
15
15
   ORM(C#のEntity Framwork Core)を使用し、RepositoryでSaveChangesAsyncをすればコミットしてくれますが、
16
-  複数のデータを同時更新したい時
17
-  トランザクションを手動で実施する場合はどの層で実施すればよいでしょうか?
16
+  複数のデータを同時更新したい時、トランザクションを手動で実施する場合はどの層で実施すればよいでしょうか?
18
17
   現在context(データ)はRepositoryが持っています。
19
18
 
20
19
   ※モデルの関連モデルであれば、ORMの機能で同時にできたりはしますが
21
- 例えば、あるNo発行用のモデルで追加を行ってから、本来のデータモデルを追加をするような時に、同じトランザクション内で実施したい。
20
+ 例えば、あるNo発行用のモデルで追加を行ってから、本来のデータモデルを追加をするような時に、
22
21
   これはORMの機能では実施できなかったので、トランザクションを手動で実施する必要があります。
23
22
 
24
23
 

8

訂正

2021/01/07 11:23

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -14,10 +14,14 @@
14
14
 
15
15
   ORM(C#のEntity Framwork Core)を使用し、RepositoryでSaveChangesAsyncをすればコミットしてくれますが、
16
16
   複数のデータを同時更新したい時
17
-  (ここでの複数データというのはモデルの関連モデルでなく、例えばNo発行とデータ更新を同時にしたい時など)に、
18
17
   トランザクションを手動で実施する場合はどの層で実施すればよいでしょうか?
19
18
   現在context(データ)はRepositoryが持っています。
20
19
 
20
+  ※モデルの関連モデルであれば、ORMの機能で同時にできたりはしますが
21
+ 例えば、あるNo発行用のモデルで追加を行ってから、本来のデータモデルを追加をするような時に、同じトランザクション内で実施したい。
22
+  これはORMの機能では実施できなかったので、トランザクションを手動で実施する必要があります。
23
+
24
+
21
25
  よろしくお願いします。
22
26
 
23
27
 

7

訂正

2021/01/07 11:23

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -13,7 +13,8 @@
13
13
   下記に記載のコード(C#)ですが、他の言語でも似たようなことかもしれませんが、
14
14
 
15
15
   ORM(C#のEntity Framwork Core)を使用し、RepositoryでSaveChangesAsyncをすればコミットしてくれますが、
16
+  複数のデータを同時更新したい時
16
-  複数のデータを同時更新したい時(複数データはモデルの関連モデルでなく、例えばNo発行とデータ更新を同時にしたい時など)に、
17
+  (ここでの複数データというのはモデルの関連モデルでなく、例えばNo発行とデータ更新を同時にしたい時など)に、
17
18
   トランザクションを手動で実施する場合はどの層で実施すればよいでしょうか?
18
19
   現在context(データ)はRepositoryが持っています。
19
20
 

6

訂正

2021/01/07 11:18

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -13,7 +13,8 @@
13
13
   下記に記載のコード(C#)ですが、他の言語でも似たようなことかもしれませんが、
14
14
 
15
15
   ORM(C#のEntity Framwork Core)を使用し、RepositoryでSaveChangesAsyncをすればコミットしてくれますが、
16
+  複数のデータを同時更新したい時(複数データはモデルの関連モデルでなく、例えばNo発行とデータ更新を同時にしたい時など)に、
16
-  複数のデータを同時更新したい時に、トランザクションを手動で実施したい時はどの層で実施すればよいでしょうか?
17
+  トランザクションを手動で実施する場合はどの層で実施すればよいでしょうか?
17
18
   現在context(データ)はRepositoryが持っています。
18
19
 
19
20
  よろしくお願いします。

5

訂正

2021/01/07 11:18

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -101,4 +101,5 @@
101
101
  Startup
102
102
  ```C#
103
103
  services.AddDbContext<MvcDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("MvcConnection")));
104
+ services.AddRepository();
104
105
  ```

4

訂正

2021/01/07 11:04

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -101,5 +101,4 @@
101
101
  Startup
102
102
  ```C#
103
103
  services.AddDbContext<MvcDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("MvcConnection")));
104
- }
105
104
  ```

3

訂正

2021/01/07 11:03

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -78,9 +78,9 @@
78
78
  DepartmentRepository ※インタフェースの記載は省略します。
79
79
  ```C#
80
80
  public class DepartmentRepository : IDepartmentRepository {
81
- private readonly AddDbContext _context;
81
+ private readonly MvcDbContext _context;
82
82
 
83
- public DepartmentRepository(AddDbContext context) {
83
+ public DepartmentRepository(MvcContext context) {
84
84
  this._context = context;
85
85
  }
86
86
 
@@ -96,4 +96,10 @@
96
96
  return 1;
97
97
  }
98
98
  }
99
+ ```
100
+
101
+ Startup
102
+ ```C#
103
+ services.AddDbContext<MvcDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("MvcConnection")));
104
+ }
99
105
  ```

2

訂正

2021/01/07 11:03

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -13,7 +13,8 @@
13
13
   下記に記載のコード(C#)ですが、他の言語でも似たようなことかもしれませんが、
14
14
 
15
15
   ORM(C#のEntity Framwork Core)を使用し、RepositoryでSaveChangesAsyncをすればコミットしてくれますが、
16
-  トランザクションを手動で実施したい時はどの層で実施すればよいでしょうか?
16
+  複数のデータを同時更新したい時に、トランザクションを手動で実施したい時はどの層で実施すればよいでしょうか?
17
+  現在context(データ)はRepositoryが持っています。
17
18
 
18
19
  よろしくお願いします。
19
20
 

1

訂正

2021/01/07 10:59

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -12,7 +12,7 @@
12
12
  ② トランザクションについて
13
13
   下記に記載のコード(C#)ですが、他の言語でも似たようなことかもしれませんが、
14
14
 
15
-  ORM(C#のEntity Framwork Core)を使用し、RepogitoryでSaveChangesAsyncをすればコミットしてくれますが、
15
+  ORM(C#のEntity Framwork Core)を使用し、RepositoryでSaveChangesAsyncをすればコミットしてくれますが、
16
16
   トランザクションを手動で実施したい時はどの層で実施すればよいでしょうか?
17
17
 
18
18
  よろしくお願いします。