Создание собственных классов POCO не будет работать. ОШИБКА Указанная схема недействительна - PullRequest
1 голос
/ 03 октября 2010

Когда я пытаюсь создать свои собственные классы POCO, я получаю эту ошибку.Это только когда я получил список какого-то рода или акцезации, как в этом случае, Автор получил Книги.Но он прекрасно работает, когда я использую T4.Мне нравится создавать свои собственные классы, потому что тогда я мог бы добавить свой AddBook () к нему .. поэтому я очень признателен, если кто-нибудь знает почему ..

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();
    }

1 Ответ

0 голосов
/ 04 октября 2010

Похоже, EF ищет внешний ключ в вашей сущности Book. Возможно, вы не исключили сопоставление внешнего ключа.

В любом случае, если вы используете POCO, сгенерированные t4, вы все равно можете добавить собственные методы, такие как AddBook (), создав частичный класс, поскольку сгенерированные t4 классы являются частичными.

...