Add list <object> to EF

I play with EF, trying to understand. Right now I am writing blackjack for a website. The problem is that when I pull the GameState from the database, the playerHand , dealerHand , theDeck and dealerHidden are null.

 public class GameState { [Key] [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] public int gameSession { get; set; } public int playerScore { get; set; } public int dealerScore { get; set; } public Deck theDeck { get; set; } public List<Cards> playerHand { get; set; } public List<Cards> dealerHand { get; set; } public Cards dealerHidden { get; set; } public bool gameOver { get; set; } } public class Cards { [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int cardId { get; set; } public string cardName { get; set; } public int cardValue { get; set; } } public class GameStateContext : DbContext { public GameStateContext() : base("MyContext") { } protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity<GameState>().HasRequired(e => e.theDeck); modelBuilder.Entity<GameState>().HasRequired(e => e.dealerHand).WithMany().WillCascadeOnDelete(false); modelBuilder.Entity<GameState>().HasRequired(e => e.playerHand).WithMany().WillCascadeOnDelete(false); modelBuilder.Entity<GameState>().HasOptional(e => e.dealerHidden); modelBuilder.Entity<Deck>().HasRequired(e => e.cards).WithMany().WillCascadeOnDelete(false); base.OnModelCreating(modelBuilder); } public DbSet<GameState> GameStates { get; set; } public DbSet<Deck> Decks { get; set; } public DbSet<Card> Cards { get; set; } } 

Cards and deck are full. Where am I mistaken?

+4
source share
1 answer

It seems to me that you need to either make your navigation properties, i.e. playerHand, dealerHand, theDeck and dealerHidden lazy loadable, create virtual properties for them, or you will need to load them when prompted by GameState.

 myDBContext.GameStates.Include("playerHand").Include("dealerHand").Include("theDeck").Include("dealerHidden").where(...); 

here is a decent explanation of how an entity’s infrastructure views related objects:

http://msdn.microsoft.com/en-us/data/jj574232.aspx

+1
source

All Articles