DataModel
[Table("Item")]
public class Item
{
public int ItemId { get; set; }
public int TemplateId { get; set; }
public DateTime CreateDate { get; set; }
[ForeignKey("OwnerId")]
public Player Owner { get; set; }
}
public class Player
{
public int PlayerId { get; set; }
public string Name { get; set; }
public ICollection<Item> Items { get; set; }
}
AppDbContext
public class AppDbContext : DbContext
{
public DbSet<Item> Items { get; set; }
public DbSet<Player> Players { get; set; }
public const string ConnectionString = @"Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=MyDB;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False";
protected override void OnConfiguring(DbContextOptionsBuilder options)
{
options.UseSqlServer(ConnectionString);
}
}
DbCommands
public static void ShowItems()
{
Console.WriteLine("플레이어 이름 입력 : ");
string name = Console.ReadLine();
using (var db = new AppDbContext())
{
foreach(Player player in db.Players.AsNoTracking().Where(p => p.Name == name).Include(p => p.Items))
{
foreach(Item item in player.Items)
{
Console.WriteLine($"{item.TemplateId}");
}
}
}
}