일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 개발언어
- @types
- 개발
- 게시판
- JWT 토큰 인증 로그인 쿠키 설정
- 마이너스의 의미
- 메일수신거부 프로세스
- ChatGPT
- 웹퍼블리셔전망
- 초보
- 하마모양
- 터미널옵션
- classNames
- 웹퍼블리셔종말
- 메일수신거부처리
- ts7016
- 패키지관리자
- 곧아빠됨
- pnpm
- 스케쳐스아치핏
- .netcore
- nodejs
- locofy.ai
- typesinstall
- asp.net core
- JWT 토큰
- json pretty
- TS70016
- 아들에게
- c#
- Today
- Total
I am maker
ASP.NET CORE MVC EntityFramework 게시판만들기 -4. CreatedUtc 수정. 생성일을 db에서 자동입력하도록 본문
ASP.NET CORE MVC EntityFramework 게시판만들기 -4. CreatedUtc 수정. 생성일을 db에서 자동입력하도록
코딩하는고릴라 2017. 5. 4. 11:18CreatedUtc 날짜값을 자동으로 입력되게하자.
설명
CreatedUtc는 생성일인데요. 왜 UTC를 쓰느냐? 글로벌을 준비해서입니다.
왠만하면 UTC를 쓰세요. 사용시 클라이언트에서 변환해서 계산하면됩니다. 아니면 둘 다 넣어주셔도되구요.
국내에서만 쓸꺼면 UTC를 안쓰셔도됩니다.
정답은 없어요 상황에 따라 적절한 판단을 하시길 바랍니다.
지난번 시간에 모델부터 스캐폴딩을 이용한 CRUD페이지 및 기능 생성까지 했는데요,
사용해보니 입력할때 CreatedUtc를 수동으로 입력해야하더라구요.
그래서 오늘은 CreatedUtc를 자동으로 db에 저장될때 db함수"GETUTCDATE()"를 통해서 입력하려고합니다.
왜 db함수를 통해서하느냐?
데이터의 신뢰성 때문입니다.
DB서버 하나에 여러 Web서버를 뒀을때를 생각해보면
각 웹사이트의 시간값으로 저장하는것보단 db에 저장되는 순간 db에서 시간값으로 저장하는게 데이터의 신뢰성이 높기 때문입니다.
다른 이유가 있다면 아래 덧글로 저도 알려주세요.
오늘 작업계획은 아래 순서대로 해보겠습니다.
1. CreatedUtc 모델 수정(DB에서 계산하도록 DataAttribute 추가)
2. Migrations 추가 및 코드 수정
3. DatabaseUpdate 및 확인
4. 각 View 및 Controller에서 CreatedUtc 제거
이제 실제 작업을 시작해볼까요?
1. CreatedUtc 모델 수정(DB에서 계산하도록 DataAttribute 추가)
1-1.DatabaseGenerated를 Attribute로 추가해줍니다.그러면 빨간줄이나오는데요, 이건 현재 소스코드에서 알수없는 코드라는 뜻입니다.
보통 using을 추가하여 해당 클래스의 네임스페이스를 추가해주면 해결됩니다.
Ctrl+. 을 누르시거나 마우스커서를 올려 전구모양을 누르신후 첫번째 using문을 추가하는 옵션을 선택해주세요.
그러면using System.ComponentModel.DataAnnotations.Schema;이 최상단에 추가됩니다.
이 것은 System.ComponentModel.DataAnnotations.Schema를 사용하겠다는 의미입니다.
즉 DatabaseGenerated가 어떤 네임스페이스를 사용해야하는지를 VisualStudio가 힌트를주는거죠.
1-2. DatabaseGenerated(괄호를 열면 DatabaseGenaratedOption이나오는데 거기에 .을 누르시고 Computed를 선택하여 아래와 같이 만들어줍니다.
이 컬럼은 소스코드에서 처리하지 않고 Database에서 계산하여 넣겠다는 의미입니다.
2. Migrations 추가 및 코드 수정
2-1. dotnet ef migrations add BoardCratedUtcDatabaseGenerated 라고 마이그레이션을 추가해줍니다.
2-2. 추가한 마이그레이션 코드를 열고 아래와같이 컬럼 변경문을 써줍니다.
(VisualStudio에 Solution Explorer 에 BoardTutorial 프로젝트 - Data-Migrations-TimeStamp_BoardCratedUtcDatabaseGenerated.cs파일)
3. DatabaseUpdate 및 확인
3-1.DatabaseUpdate를 해줍니다. dotnet ef database update
3-2.SSOE(SqlServerObjectExplorer)를 통해 실제 Board Table에 CreatedUtc 컬럼의 기본값이 getutcdate()로 들어갔는지 확인해줍니다.
4. 각 View 및 Controller에서 CreatedUtc 제거
4-1. Ctrl+shift+f 키를 눌러 CreatedUtc가 들어간 곳을 모두 찾습니다.
4-2. 컨트롤러 및 뷰에서 CreatedUtc와 관련된 것들을 삭제해줍니다.
이 때 detail, index뷰는 제외하고 지워주세요. 입력된 값이 나오는건 봐야하니까요.ㅎㅎ
끝!
'ASP.NET Core' 카테고리의 다른 글
ASP.NET CORE MVC EntityFramework 게시판만들기 - 5.WYSIWYG Editor 달기 (1) | 2017.05.18 |
---|---|
ASP.NET CORE MVC EntityFramework 게시판만들기-3. 컨트롤러 및 뷰 만들기 (0) | 2017.05.02 |
ASP.NET CORE MVC EntityFramework 게시판만들기- 2. 모델 만들기 (0) | 2017.04.28 |
ASP.NET CORE MVC EntityFramework 게시판만들기- 1.벤치마킹 및 기능 분석 (0) | 2017.04.28 |
ASP.NET CORE MVC EntityFramework 게시판만들기- 0. 작업환경 구성하기 (0) | 2017.04.27 |