2017-09-01 11 views
0

EF 6データアノテーション

int Id = 1; 
    Page page = context.Pages.Where(x => x.ID == Id).FirstOrDefault(); 
    Category category = page.Categories.FirstOrDefault(); 
    return category; 

(リポジトリからメソッドから)コード以下のようなアクセスカテゴリに試みることは私は

コマンド定義を実行中に{ "エラーが発生したエラーを与える

[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; } 
} 

詳細については 内部例外を参照してください。 "}内部例外:{"無効なオブジェクト名 'dbo.PageCategories'}

私は、私はまだそれがこのテーブルを探していますdbo.Categories

にdbo.PageCategoriesと改名し、テーブル名dbo.PageCategoriesを持っていません。

+0

コードには「ページカテゴリ」は含まれていません。このコードは、貼り付けたエラーを生成することはできません。 –

+0

それは私の心配です、私はソリューション全体でPageCategoriesを検索して0の結果を得ましたが、それはそのようなエラーを生成します。 – HPP

+0

こんにちは、 '[Table(" CategoryPages ")]'を含むプロジェクトを*再構築できますか?私は、いずれか、またはカテゴリ1の名前が変更されたと考えています。とにかく、あなたはいつでも[ILSpy](http://ilspy.net/)を使ってバイナリを見ることができます。 –

答えて

0

コードに間違いはありません。私はあなたがデータベースを生成した後にテーブルの名前を変更したと思います。つまり、モデルとデータベースは同期していません。そのために新しい移行を追加するか、既存の移行を削除して新しい移行を追加する必要があります。その後、データベースを更新できるはずです。

EFコードファーストマイグレーションで作業していない場合は、MSDN Articleが役立ちます。

関連する問題