我刚刚学习ASP.NET MVC 3,最近我尝试了很多次传递数组/列表/ ICollections等,但却没有。每次清单都是空的。
例如,当前项目:
型号:
public class Video
{
public int VideoID { get; set; }
public string Name { get; set; }
public ICollection<string> Tags { get; set; }
}
初始化程序 - 种子:
protected override void Seed(DatabaseContext context)
{
var videos = new List<Video>
{
new Video {
Name = "Video01",
Tags = new List<string> { "tag1", "tag2" },
};
videos.ForEach(s => context.Videos.Add(s));
context.SaveChanges();
base.Seed(context);
}
在视图中:我确实获得了Name
属性,但Tags
完全为空。
在调试中,我得到Tags - Count: 0
。
这不是第一次发生在我身上,说实话,每当我试图传递这些东西时,它就会发生。关于该项目的一些信息:
ASP.NET MVC 3,实体框架:代码优先,SqlServerCe.4.0。
答案 0 :(得分:0)
默认情况下,Entity Framework不加载实体的关联,您需要明确指定它:
var videos = context.Videos.Include("Tags");
答案 1 :(得分:0)
创建实体标记
public class Video
{
public int VideoID { get; set; }
public string Name { get; set; }
public ICollection<Tag> Tags { get; set; }
}
public class Tag
{
public int TagId { get; set; }
public int VideoId { get; set; }
public string TagText { get; set; }
}
或将标签存储到以逗号/分号或任何适合您的解决方案分隔的字段