1

嗨,我第一次使用实体框架代码,但无法生成表格。我在 MVC3 应用程序的 App_Data 中创建了一个空数据库。这是我创建的模型:

 public class Brand {
    public int BrandId { get;set; }
    public string BrandName { get;set; }
}

public class Model
{
    public int ModelId { get;set; }
    public Brand BrandId { get;set; }
    public Category CategoryId { get;set; }
    public string ModelName { get;set; }
}

public class Category
{
    public int CategoryId { get;set; }
    public string CategoryName { get;set; }
}

这是 dbContext:

public class CarsEntities : DbContext{
    public DbSet<Brand> Brands { get;set; }
    public DbSet<Model> Models { get;set; }
    public DbSet<Category> Categories {get;set;} 
}

这是 web.config 中的 connectionString:

<connectionStrings>
      <add name="CarsEntities" connectionString="Data Source='D:\Projects IDE\Visual Studio\MyWork\Websites\SellCars\SellCars\App_Data\Cars.sdf'" providerName="System.Data.SqlClient" />      
 </connectionStrings>

现在我已经在 HomeController 中初始化了 CarsEntities,但似乎没有生成任何表。我做错了什么?

4

2 回答 2

1

我认为问题出在你的

webcofig 

如果您想将 db 用作 mdf 文件数据库文件之类的文件,具体在dtasource

       `<add name="CarsEntities"  connectionString="data source=.\SQLEXPRESS; Integrated
 Security=SSPI;AttachDBFilename=|yourDirectoryDirectory|\thenameofyourdb.mdf;User
 Instance=true"  providerName="System.Data.SqlClient" /`>
于 2013-01-04T21:30:40.537 回答
1

首先 - 由于您使用的是 SQL Server Compact,因此您需要更改提供程序名称以使用 Compact 而不是 SQL Server:

<add name="CarsEntities" connectionString="Data Source='D:\Projects IDE\Visual Studio\MyWork\Websites\SellCars\SellCars\App_Data\Cars.sdf'" providerName="System.Data.SqlServerCe.4.0" />

接下来,您需要在 Application_Start 代码中的某处使用数据库初始化程序,它告诉实体框架是否创建数据库表以及重新创建它们的频率。看这里:

http://www.codeguru.com/csharp/article.php/c19999/Understanding-Database-Initializers-in-Entity-Framework-Code-First.htm

http://msdn.microsoft.com/en-us/data/jj591621.aspx

于 2013-01-04T21:35:37.907 回答