2010-10-03 48 views
1

當我嘗試創建自己的POCO類時,出現此錯誤。這隻有當我得到一個類似或acsosiation列表,在這種情況下,作者得到了書籍。但是,當我使用T4時,它很好用。我還挺喜歡創建自己的班,因爲這樣我可以我AddBook()添加到它..所以我非常感激,如果有人知道爲什麼..創建自己的POCO類不會奏效。錯誤指定的架構無效

Schema specified is not valid. Errors: 
The relationship 'EworkModel.AuthorBook' was not loaded because the type 'EworkModel.Book' is not available. 
The following information may be useful in resolving the previous error: 
The required property 'AuthorId' does not exist on the type 'EntityWork.Model.Book'. 

我的課是這樣

public class Author 
{ 
    public virtual int AuthorId { get; set; } 
    public virtual string Name { get; set; } 
    public List<Book> Books { get; set; } 
} 

public class Book 
{ 
    public virtual int BookId { get; set; } 
    public virtual string Title { get; set; } 
    public virtual Author Author { get; set; } 
} 

private ObjectSet<Author> _authors; 
    private ObjectSet<Book> _books; 

    public EntityWorkContext() 
     : base("name=EworkEntities", "EworkEntities") 
    {    
     _authors = CreateObjectSet<Author>(); 
     _books = CreateObjectSet<Book>(); 

     ContextOptions.LazyLoadingEnabled = true; 
    } 

    public ObjectSet<Author> Authors 
    { 
     get 
     { 
      return _authors; 
     } 
    } 

    public ObjectSet<Book> Books 
    { 
     get 
     { 
      return _books; 
     } 
    } 

    public void Save() 
    { 
     SaveChanges(); 
    } 
+0

只是要拋出這裏,但我只使用虛擬與其他實體類型,而不是基本類型,如「int」。我不能說這是否是問題的一部分。 – Buildstarted 2010-10-04 02:43:29

回答

0

似乎EF正在您的Book實體中尋找外鍵。也許你沒有排除外鍵映射。

無論如何,如果你使用t4生成的POCO,你仍然可以通過創建一個部分類來添加像AddBook()這樣的自定義方法,因爲t4生成的類是部分類。

+0

我走了,不得不考慮一下,排除fk。是的,我注意到我可以這樣做,所以我的問題有點解決了,但我現在用Code先得到了另一個我的手..但多數民衆贊成在另一個職位(我張貼)感謝您的答覆.. – 2010-10-04 21:10:50