Asp.net mvc 2 创建自己的POCO类是行不通的。指定的错误架构无效
当我尝试创建我自己的POCO类时,我得到了这个错误。这只是当我得到一个类似于本例中作者得到书籍的列表时。但当我使用T4时,效果非常好。我有点喜欢创建自己的类,因为这样我就可以将AddBook()添加到其中。。所以如果有人知道原因,我非常感激Asp.net mvc 2 创建自己的POCO类是行不通的。指定的错误架构无效,asp.net-mvc-2,entity-framework-4,poco,Asp.net Mvc 2,Entity Framework 4,Poco,当我尝试创建我自己的POCO类时,我得到了这个错误。这只是当我得到一个类似于本例中作者得到书籍的列表时。但当我使用T4时,效果非常好。我有点喜欢创建自己的类,因为这样我就可以将AddBook()添加到其中。。所以如果有人知道原因,我非常感激 Schema specified is not valid. Errors: The relationship 'EworkModel.AuthorBook' was not loaded because the type 'EworkModel.Book
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();
}
公共类作者
{
公共虚拟整数编写{get;set;}
公共虚拟字符串名称{get;set;}
公共列表书籍{get;set;}
}
公共课堂用书
{
公共虚拟整数BookId{get;set;}
公共虚拟字符串标题{get;set;}
公共虚拟作者{get;set;}
}
私有对象集作者;
私有对象集;
公共实体WorkContext()
:base(“名称=EworkEntities”,“EworkEntities”)
{
_authors=CreateObjectSet();
_books=CreateObjectSet();
ContextOptions.LazyLoadingEnabled=true;
}
公共对象集作者
{
得到
{
返回作者;
}
}
公共对象集书籍
{
得到
{
还书;
}
}
公共作废保存()
{
保存更改();
}
似乎EF正在查找书本实体中的外键。可能您没有排除外键映射
无论如何,如果您使用t4生成的POCO,您仍然可以通过创建分部类来添加自定义方法,如AddBook(),因为t4生成的类是分部类。我将把它抛到一边,但我只对其他实体类型使用virtual,而不对基本类型(如
int
)使用virtual。我不能说这是否是问题的一部分。我必须去调查那件事。是的,我注意到我可以这样做,所以我的问题有点解决了,但是我现在有了另一个问题,首先是代码。。但那是另一篇帖子(我发的)谢谢你的回复。。