[blazor] DateTimeOffset > DateTime으로 변경하기 멤버 변수 추가

코찔찔이·2023년 9월 5일
0

blazor강의 따라하기

목록 보기
19/23
post-thumbnail
  1. 타 DB와 호환성을 맞추기 위해 기존에 생성한 Create컬럼의 데이터 타입을 DataTimeOffset에서 DateTime으로 변경.
  2. Video.cs 모델, DB프로젝트에서 해당하는 Video테이블에서 Create 컬럼의 데이터 타입 변경
  3. 이후 게시를 하면 데이터 크기가 큰것에서 작은것으로 변경하여 에러가 발생 하며 이때 sql management혹은 visualstudio 서버탐색기에서 DB로 접근해 강제로 컬럼 타입 변경 후 게시하면 게시완료.
    이 방법 외에도 새로운 테이블을 만들고 데이터를 복사 한 후 변경 등 방법은 여러가지 있음..!

1. SQL프로젝트 Video테이블 변경

  • 변경전

  • 변경후

  • 게시를 하면 아래와 같은 에러 발생.

  • sql 탐색기에서 강제로 변경 후 업데이트 버튼 클릭

  • 업데이트 진행


2. 모델 변경


3. AuditableBase.cs 생성후 DB, 모델 추가.

  • Base 클래스 생성.
    생성자,생성시간,수정자,수정시간을 base 클래스에 정의해 두고 새로운 모델 생성시
    상속받아 사용
    각 row의 생성 및 수정 이력을 남기기 위함.
using System;

namespace VideoAppCoreModels.Common
{
    public class AuditableBase
    {

        /// <summary>
        /// 생성시간
        /// </summary>
        public DateTime Created { get; set; }
        /// <summary>
        /// 생성자
        /// </summary>
        public string CreateBy { get; set; }
        /// <summary>
        /// 수정일
        /// </summary>
        public DateTime Modified { get; set; }
        /// <summary>
        /// 수정자
        /// </summary>
        public string ModifiedBy { get; set; }
    }
}
using VideoAppCoreModels.Common;

namespace VideoAppCoreModels
{


    /// <summary>
    /// [2] 테이블 생성 후 대응 모델 생성.
    /// 통상적으로 모델 사용하는 명칭. 테이블명이 Videos일 경우
    /// video,videoModel,videoViewModel,videoBase,videoEntity,videoDto,....
    /// </summary>

    public class Video : AuditableBase
    {
        /// <summary>
        /// ID
        /// </summary>
        public int Id { get; set; }
        //public DateTimeOffset Created { get; set; }
        /// <summary>
        /// 강의 제목
        /// </summary>
        public string Title { get; set; }
        /// <summary>
        /// 동영상 URL 경로
        /// </summary>
        public string Url { get; set; }
        /// <summary>
        /// 생성자
        /// </summary>
        public string Name { get; set; }
        /// <summary>
        /// 회사
        /// </summary>
        public string Company { get; set; }
    }
}
  • sql 프로젝트 Videos.sql 테이블 수정
CREATE TABLE [dbo].[Videos]
(
	[Id] INT NOT NULL identity(1,1) PRIMARY KEY
	,Title nvarchar(255) not null -- 제목
	,Url nvarchar(max) not null -- URL
	,Name nvarchar(50) null --이름
	,Company nvarchar(255) null --회사
	,Created DateTime Default(GetDate()) --생성일(작성일)
	,CreateBy Nvarchar(255) null -- 생성자
	,Modified DateTime Default(getDate()) null -- 수정일
	,ModifiedBy Nvarchar(255) null -- 수정자
)
  • 게시 후 프로필 로드

  • videoAppcoreSqlServer.publish.xml 선택

  • Db에 반영된 테이블 스키마

0개의 댓글