inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버

EF Core 데이터 관계 모델링

DB 설정 관련해서 질문 드립니다

424

한일상

작성한 질문수 2

0

[Table("UserTable")]

public class UserData

{

[Key] public string UserId { get; set; }

public string? Token { get; set; }

[MaxLength(32)]

public string? UserName { get; set; }

public DateTime? CreateTime { get; set; }

public BanData? Ban { get; set; }

public ICollection<MailData> OwnMails { get; set; }

public ICollection<GetMailData> GetMails { get; set; }

}

[Serializable] public class BanData

{

public DateTime Start { get; set; }

public DateTime End { get; set; }

public int State { get; set; }

public string DescKey { get; set; }

// Foreign Key

public string UserId { get; set; }

public UserData User { get; set; }

}

public class MailData

{

/// <summary> 우편물 구분 값 </summary>

[Key] public long Id { get; set; }

/// <summary> 발송일 </summary>

public DateTime SendDate { get; set; }

/// <summary> 우편물 받아야하는 기간 </summary>

public DateTime EndDate { get; set; }

/// <summary> 우편 내용물 </summary>

public string Body { get; set; }

/// <summary> 보낸이 ex)GM, DEV 등등 </summary>

public string Sender { get; set; }

// Foreign Key

public string UserId { get; set; }

public UserData User { get; set; }

}

/// <summary> 우편물 획득 시 </summary>

public class GetMailData

{

/// <summary> 우편물 구분 값 </summary>

[Key] public long Id { get; set; }

/// <summary> 우편물 시간제한에 의한 삭제 </summary>

public bool IsTimeOut { get; set; }

/// <summary> 받은 날 </summary>

public DateTime GetDate { get; set; }

/// <summary> 우편 내용물 </summary>

public string Body { get; set; }

/// <summary> 보낸이 ex)GM, DEV 등등 </summary>

public string Sender { get; set; }

// Foreign Key

public string UserId { get; set; }

public UserData User { get; set; }

}

이렇게 SharedData.Models 정의를 해서
사용을 하고자 합니다 UserData에서만 DB 컬럼으로 활용을 하고싶습니다

 

ApplicationDbContext.cs

protected override void OnModelCreating(ModelBuilder modelBuilder)

{

base.OnModelCreating(modelBuilder);

modelBuilder.Ignore<BanData>();

modelBuilder.Ignore<MailData>();

modelBuilder.Ignore<GetMailData>();

}

에는 DB로 만들어지지 않았으면 해서 예외처리를 추가했습니다

 

UserTable

이런식으로 생성하게 하려면 어떻게해야 하나요?

rest-api blazor web-api asp.net-core

답변 3

0

한일상

자답입니다

 

UserData user = UserDatas

.Where(user => user.UserId == userId)

.Include(user => user.MailDatas)

.Include(user => user.GetMailDatas)

.Include(user => user.BanData)

.FirstOrDefault();

 

위 질문처럼 포렌키로 처리를 하고 나서 DB에서 긁어올때 이렇게 연동처리를 하면 정상적으로 처리되는것으로 확인했습니다

0

한일상

넵 우선 감사합니다

제가 원하는 것은
DB에 MailData, BanData, GetMailData가 생성되지 않고
UserTable에만 존재했으면 하는 겁니다
{

"UserId":"ID",

"Token": null,

"UserName":"Name",

"Ban":{

벤 정보

},

"OwnMails":[

{

아이템 정보 1

},

{

아이템 정보 2

}

],

"GetMails":[]

}



이런식으로 UserTable에 값이 들어갈 수 있는 방법이 있는지 궁금합니다 만약 불가능하다면
GetMailData, MailData, BanData 도 DB Table에 포함이 되어 포렌키로 사용을 해야하는지도요

감사합니다

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

질문하신 내용과 관련하여 유사한 문제를 해결한 기존 답변을 찾았습니다.

강의 “[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버”에서 다루고 있는 Entity Framework Core의 모델링과 관련된 질문이 있는데요, Rookiss 강사님이 EF 모델링에 관한 노트 영상을 만들어 놓으셨다고 합니다. 이 노트 영상에서는 모델에 인덱스를 추가하는 방법뿐만 아니라 다양한 모델링 관련 내용을 다루고 있으므로 참고하실 수 있을 것 같습니다.

  • 해당 답변 URL: Db model 에 index 추가 및 Identity관련
  • 강사님 답변 내용 요약: EF 모델링에 관한 노트 영상을 참고하시기 바랍니다. 해당 영상에서 모델에 인덱스를 추가하는 방법을 포함해 다양한 모델링 관련 내용을 다루고 있습니다.

더 자세한 내용을 원하신다면 위 링크를 방문하여 강사님의 답변을 확인하시는 것이 좋을 것 같습니다.

클래스 라이브러리 (.NET Core)이 없으면 클래스 라이브러리 선택하시면 됩니다.

0

131

1

NET 9.0 버전에서의 레이아웃 적용

1

170

1

Visual Studio 2022에서 프로젝트 만들기 질문

0

314

2

MVC를 제대로 이해를 못했는데,

0

173

1

ASP.NET

0

151

1

LING #1 에서.. 서버 GC문제

0

263

3

자바스크립트 내용이 나오나요?

0

170

1

웹 사이트 보안

0

212

2

blazor실습 시 바인딩 관련 및 버튼이 동작하지 않는 이슈가 있으면? ( .NET 8.0 기준 )

3

373

1

Uri함수 파라미터 주소에 sslport번호를 넣으면 무한 로딩이걸림

0

497

2

An unhandled exception has occured. See browser dev tools for detail.

0

341

2

EFCore 포렌키 설정 관련 질문(Entity Framework Code First One-to-Many Relationship)

0

364

3

10분 48초 부근에 안 되는 사람들 참고하세요

1

548

1

ArgumentException: Keyword not supported: 'trust server certificate'.

0

859

1

Need Summary 부분 질문있습니다!

0

311

1

계속 똑같은 에러가 뜹니다 ㅠㅠ

0

489

1

이번 강의 코드를 받을 수 있을까요?

0

371

1

ATOM이 2022년 12월 15일 기준 종료되었네요

0

565

1

CounterState 질문입니다.

0

401

1

"연결이 비공개로 설정되어 있지 않습니다." 오류가 뜰 경우

0

1824

2

백엔드 서버에 JPA를 사용해도 문제가 없을까요?

0

569

1

SendPostRequest 에서 POST 중복된 값이 추가되는 것을 방지하려면 어떻게 하면 될까요?

0

457

1

Task<WeatherForecast[]> 를 List<Task<WeatherForecast>> 이렇게 고친 후

0

399

1

웹서버로 턴제 카드게임 구현가능할까요?

0

1628

1