2011-09-28 82 views
3

我收到以下错误,当我的应用程序运行:映射到一个嵌套类

System.InvalidOperationException:类型 “ContactModels +联系方式”并没有映射。检查 类型是否未使用Ignore方法或NotMappedAttribute数据注释明确排除。验证类型是否定义为 作为类,不是原始的,嵌套的或通用的,并且不从EntityObject继承 。

当我的DbContext类尝试初始化实体它失败:

​​

联络模型如下:

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有创造力。虽然在这一点上,我会采取任何一个,如果它的工作。

回答

9

错误的部分是,你想映射嵌套类。它不受实体框架的支持。

+0

这是100%,非常感谢。现在很简单,我再看一遍。谢谢。 – Terry

+0

在这种情况下,什么是嵌套类? –

+1

@ SimonB.Robert:嵌套类是在另一个类中定义的类。 –