映射到嵌套类

3
当我的应用程序运行时,我遇到了以下错误:
System.InvalidOperationException:未映射类型“ContactModels + Contact”。请检查使用Ignore方法或NotMappedAttribute数据注释是否已明确排除该类型。验证该类型定义为类,不是基元,嵌套或泛型,并且不继承自EntityObject。
当我的DBContext类尝试初始化实体时,它会失败。
public class DB : DbContext
{
    public DbSet<ContactModels.Contact> Contacts { get; set; }
    ....
}

联系人模型如下:
public class ContactModels
{
    public class Contact
    {
        public int ID { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        ...
    }
}

连接字符串:

<add name="DB" connectionString="Data Source=XXXXX;Initial Catalog=XXXX;Trusted_Connection=True"
  providerName="System.Data.SqlClient" />

无论数据库是否存在,我都会遇到错误,即使我已经初始化了它:

protected void Application_Start()
{
    Database.SetInitializer(new CreateDatabaseIfNotExists<Models.DB>());
    ....
}

这是我第一次使用EF,我已经跟着一些教程走了,但我想使用SQL Server 2008 R2,并且愿意自己创建数据库,而不是让EF为我创建。不过现在只要能用,我都可以接受。

2个回答

9

错误的部分是你试图映射嵌套类。这在实体框架中不受支持。


那就是100%的答案,非常感谢。现在再看一遍,真的很简单。谢谢。 - Terry
在这种情况下,嵌套类是什么? - Simon B.Robert
1
@SimonB.Robert:嵌套类是在另一个类中定义的类。 - Ladislav Mrnka

0

不是我想要的答案,但这是一个我不知道的好工具,谢谢。+1 - Terry

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接