向数据库添加新数据是处理多对多关系。
现在我正在尝试获取所有类别的项目(类别包括 id 和 name)。当我从我的数据库中获取所有项目时,会填写相关的类别,但只有 id 的。
课程
public class Project
{
public Project() {
Categories = new HashSet<Category>();
}
public int ProjectID { get; set; }
[Display(Name = "Titel")]
public int CompanyID { get; set; }
public virtual Company Company { get; set; }
public virtual ICollection<Category> Categories { get; set; }
}
public class Category
{
public int CategoryID { get; set; }
public string CategoryName { get; set; }
public virtual ICollection<Project> Projects { get; set; }
}
语境
/*************ProjectS**************/
modelBuilder.Entity<Project>().HasKey(t => t.ProjectID);
modelBuilder.Entity<Project>().ToTable("Project", "freelauncher");
modelBuilder.Entity<Project>().Property(t => t.ProjectID).HasColumnName("project_id").HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
modelBuilder.Entity<Project>().HasMany(p => p.Categories)
.WithMany(cat => cat.Projects)
.Map(pc =>
{
pc.ToTable("category_has_project");
pc.MapLeftKey("project_id");
pc.MapRightKey("category_id");
}
);
/*************CATEGORY**************/
modelBuilder.Entity<Category>().HasKey(t => t.CategoryID);
modelBuilder.Entity<Category>().ToTable("category", "freelauncher");
modelBuilder.Entity<Category>().Property(t => t.CategoryID).HasColumnName("category_id");
modelBuilder.Entity<Category>().Property(t => t.CategoryName).HasColumnName("category_name");
控制器
public ActionResult Projects()
{
IEnumerable<Project> projects = Adapter.ProjectRepository.Get();
return View();
}
存储库
public virtual IEnumerable<TEntity> Get(
Expression<Func<TEntity, bool>> filter = null,
Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>> orderBy = null,
string includeProperties = "")
{
IQueryable<TEntity> query = dbSet;
if (filter != null)
{
query = query.Where(filter);
}
foreach (var includeProperty in includeProperties.Split
(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
{
query = query.Include(includeProperty);
}
if (orderBy != null)
{
return orderBy(query).ToList();
}
else
{
return query.ToList();
}
}
在我的项目中获取 CategoryName 我做错了什么?