2011-04-28 65 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

相关问题