У меня есть проект WCF, и я генерирую базу данных с помощью инфраструктуры Entity v6 и кода. Но у меня есть проблема с отношением между классом User и FeedRss. Я хочу несколько FeedRss для каждого пользователя. Моя работа с кодом (без исключения), но не добавляется в фиды ICollection (у пользователя), этот список пуст после восстановления в базе данных.Entity Framework Code First: отношение «один ко многим» (пустой список)
public class User
{
[Key]
public int UserID {get; set;}
...
[InverseProperty("User")]
public ICollection<FeedRSS> feeds { get; set; }
public User()
{
feeds = new List<FeedRSS>();
}
}
один user-> много feedRss
public class FeedRSS
{
[Key]
public int ID { get; set; }
...
public int UserId { get; set; }
[ForeignKey("UserId")]
public User User { get; set; }
public FeedRSS()
{
}
}
public class UsersContext : DbContext { public DbSet<User> Users { get; set; } public DbSet<FeedRSS> Feeds { get; set; } }
Моя функция для испытания моего кода (но возвращающие пустой список):
public User getUser(int Id)
{
using (UsersContext context = new UsersContext())
{
return context.Users.ToList().Find(
delegate(User u) {
return u.UserID == Id;
});
}
}
public List<FeedRSS> getFeedListTest(User u)
{
using (UsersContext ctx = new UsersContext())
{
User user = ctx.Users.First(i => i.UserID == u.UserID);
FeedRSS f = new FeedRSS() { name = "code", link = "uri" };
user.feeds.Add(f);
//the list user.feeds lenght is = 1
ctx.SaveChanges();
//update working
}
//get the same user in the database but the list uuu.feeds lenght is 0 :(
User uuu = this.getUser(u.UserID);
return uuu.feeds.ToList();
}
Я тестировал другой код очень разный (свободный API, принудительный UserId в FeedRss ..), но я не понимаю принципа отношения в рамках сущности ... Я безуспешно пытался несколько примеров коды ...
* И простите за мои приближенный английский
Вы можете добавить код метода GetUser? Я думаю, вы должны добавить Include (p => p.feeds) к вашему запросу. – CodeNotFound
Сделано, я не знал, включил. I rtfm ^^ – poupou