【发布时间】:2017-09-02 14:52:23
【问题描述】:
[Table("Pages")]
public class Page
{
[Key, Column("Page_Id")]
public int ID { get; set; }
public string Name {get;set;}
public virtual ICollection<Category> Categories { get; set; }
public Page()
{
this.Categories = new HashSet<Category>();
}
}
[Table("Categories")]
public class Category
{
[Key]
public int Category_ID { get; set; }
public string Name {get;set;}
public virtual ICollection<Page> Pages { get; set; }
public Category()
{
this.Pages = new HashSet<Page>();
}
}
[Table("CategoryPages")]
public class CategoryPage
{
[Key, Column(Order = 0)]
public int category_ID { get; set; }
[Key, Column(Order = 1)]
public int page_ID { get; set; }
public virtual Page Page { get; set; }
public virtual Category Category { get; set; }
}
public partial class Context : DbContext
{
public Context() : base("name=Context") { }
public virtual DbSet<Page> Pages { get; set; }
public virtual DbSet<Category> Categories { get; set; }
public virtual DbSet<CategoryPage> CategoryPages { get; set; }
}
当尝试访问类似以下代码的类别时(来自存储库中的方法)
int Id = 1;
Page page = context.Pages.Where(x => x.ID == Id).FirstOrDefault();
Category category = page.Categories.FirstOrDefault();
return category;
给我错误
{"执行命令定义时发生错误。见 详细信息的内部异常。”} 内部异常:{“无效的对象名称 'dbo.PageCategories'。"}
我没有表名 dbo.PageCategories,我将 dbo.PageCategories 重命名为 dbo.Categories
仍在搜索此表。
【问题讨论】:
-
您的代码不包含任何“PageCategories”。此代码不会产生您粘贴的错误。
-
这就是我关心的问题,我在整个解决方案中搜索 PageCategories 给了我 0 结果,但它会产生这样的错误。
-
嗨,你能重建包含
[Table("CategoryPages")]的项目吗?我相信,要么是那个,要么是第一类被重命名。无论如何,您总是可以使用ILSpy 查看二进制文件。 -
我可以构建,但当我尝试访问该实体属性运行时时出错。
标签: c# asp.net entity-framework-6