Q: При попытке вернуть данные из _Db
я получаю пустой объект в List
свойства, и я удивляюсь, почему другие свойства возвращается правильно, в то время как List
нет?DbContext возвращает некоторые пустые поля
Объяснения проблемы: У меня есть ApplicationDbContext
класса, который имеет public IDbSet<Player> Players { get; set; }
свойства. Со следующим ApplicationDbInitializer
класс:
public class ApplicationDbInitializer : DropCreateDatabaseAlways<ApplicationDbContext>
{
protected override void Seed(ApplicationDbContext context)
{
context.Players.Add(new Player { PlayerName = "john", PlayerSkills = new List<string> { "a", "b" } });
context.Players.Add(new Player { PlayerName = "Wuli", PlayerSkills = new List<string> { "c", "d" } });
base.Seed(context);
}
}
Мой Player
класс выглядит следующим образом:
public class Player
{
[Key]
public int Id { get; set; }
public string PlayerName { get; set; }
public List<string> PlayerSkills { get; set; }
}
Мой запрос данных выглядит следующим образом:
public IEnumerable<Player> Get()
{
return _Db.Players;
}
возвращает Id
и PlayerName
абсолютно правильно, но null
для PlayerSkills
Список.
_Db
инициализируется в том же классе, как Controller
Get()
следующим образом:
ApplicationDbContext _Db = new ApplicationDbContext();
С SQL точки зрения, какой тип поля должен 'PlayerSkills' должны коллекции магазина строк? –
ну, просто пинающий куст .. это код первый, модель первая, база данных сначала? если это первая база данных [Сергей Беренцовский ответ будет] (http://stackoverflow.com/a/42026587/4648586) - возможно. также, бит-точка, которая может повлиять на вещи .. это ядро сущности? или инфраструктура сущности 6? ах! глядя на ваш 'public List PlayerSkills' Интересно, поняли ли вы отношения [от одного до многих] (http: // stackoverflow.com/questions/41217027/database-one-to-one-vs-one-to-many). –
@BagusTesa это первый код и структура сущности 6. Да, возможно, что я пропустил некоторые концепции - первый раз работаю с db. – pushandpop