2011-04-28 60 views
3

我有一個使用Code First範例創建的MVC3項目,效果很好。我創建了一個從DBContext繼承的模型,添加了連接字符串,並且我可以寫入表格和所有這些。如何在MVC3和Entity Framework上使用Code First將另一個表添加到我的數據庫?

雖然我似乎無法弄清楚如何使用Code First將另一個表添加到數據庫中。添加指向同一數據庫的另一個連接字符串不起作用。簡單地添加另一個類,爲它創建一個DBContext,然後向新的上下文添加和保存某些內容不起作用。

如何使用代碼自動添加新表到數據庫?我現在的web.config文件看起來是這樣的:

<add name="PersonDBContext" 
    connectionString="Data Source=|DataDirectory|PersonData.sdf" 
    providerName="System.Data.SqlServerCe.4.0"/> 

我的工作模式是這樣的:

public class Person 
{ 
    public int ID { get; set; } 
    public string name { get; set; } 
    public string country { get; set; } 
    public string gender { get; set; } 
} 

public class PersonDBContext : DbContext 
{ 
    public DbSet<Person> People { get; set; } 
} 

最後,我想創造什麼:

public class Dog 
{ 
    public int ID { get; set; } 
    public string name { get; set; } 
    public string breed { get; set; } 
} 

public class DogDBContext : DbContext 
{ 
    public DbSet<Dog> Dogs { get; set; } 
} 

回答

3

你爲什麼不爲這兩個類創建單個上下文?

public class Person 

    { 
     public int ID { get; set; } 
     public string name { get; set; } 
     public string country { get; set; } 
     public string gender { get; set; } 
    } 
    public class Dog 
    { 
     public int ID { get; set; } 
     public string name { get; set; } 
     public string breed { get; set; } 
    } 

    public class ApplicationNameDBContext : DbContext 
    { 
     public DbSet<Person> People { get; set; } 
     public DbSet<Dog> Dogs { get; set; } 
    } 
+0

我覺得愚蠢的問一下,現在,它似乎不言自明。 +由於「ApplicationNameDBContext」幫助我理解,因此回覆您。 – Monochrome 2011-04-28 09:09:12

2

只需使用:

public class Person 
{ 
    public int ID { get; set; } 
    public string name { get; set; } 
    public string country { get; set; } 
    public string gender { get; set; } 
} 

public class Dog 
{ 
    public int ID { get; set; } 
    public string name { get; set; } 
    public string breed { get; set; } 
} 

public class PersonDBContext : DbContext 
{ 
    public DbSet<Person> People { get; set; } 
    public DbSet<Dog> Dogs { get; set; } 

} 
+0

感謝您的幫助,這也是正確的答案。 – Monochrome 2011-04-28 09:08:40

相關問題