2011-09-28 79 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:嵌套類是在另一個類中定義的類。 –