2013-03-23 4 views
0

Из того, что я понимаю, я делаю это правильно. У меня есть таблица блога с отношением CategoryId в поле id таблицы таблицы. Но я не могу заставить его разрешить внутри моего контроллера, когда я использую команду .include(). Вот код.ASP.Net MVC Entity Framework Отношения

Blog.cs

public class Blog 
{ 
    [Key] 
    public int Id { get; set; } 
    [Required, StringLength(50)] 
    public string Title { get; set; } 
    [DataType(DataType.Date)] 
    public DateTime PostedDate { get; set; } 
    [Required] 
    public string Meat { get; set; } 
    [Required, StringLength(25)] 
    public int CategoryId { get; set; } 
    public string FriendlyUrl { get; set; } 

    public virtual ICollection<Category> Category { get; set; } 
} 

public partial class BlogDbContext : DbContext 
{ 
    public DbSet<Blog> Blogs { get; set; } 
} 

Category.cs

public class Category 
{ 
    [Key] 
    public int Id { get; set; } 
    [Required, StringLength(50)] 
    public string Title { get; set; } 
    public string FriendlyUrl { get; set; } 
} 

public partial class BlogDbContext : DbContext 
{ 
    public DbSet<Category> Categories { get; set; } 
} 

BlogController

public class BlogController : Controller 
{ 
    private readonly BlogDbContext _db = new BlogDbContext(); 

    public ActionResult Index() 
    { 
     var blogs = _db.Blogs.Include(c => c.Category); //This is where the error occurs 
     return View(blogs.ToList()); 
    } 
} 

The relationship in my SQL Server 2012 Database

+1

Если это быть публичной виртуальной Категория Категория {получить; задавать; } вместо общедоступного виртуального ICollection Категория {get; задавать; }? – christiandev

+0

Да, вы правы, спасибо –

ответ

3
var blogs = _db.Blogs.Include("Category"); 

Должна работать лучше.

+0

И бум идет динамитом спасибо! –

1

Вместо

public virtual ICollection<Category> Category { get; set; } 

Я думаю, что это должно быть

public virtual Category Category { get; set; } 
Смежные вопросы