您好我是第一次使用Entity框架代码而我在生成表时遇到了问题。我在我的AppC中在MVC3应用程序中创建了一个空数据库。 这是我创建的模型:
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,但似乎没有生成任何表。我做错了什么?
答案 0 :(得分: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" /`>
答案 1 :(得分: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代码中使用数据库初始化程序,它告诉实体框架是否要创建数据库表以及重新创建它们的频率。见这里: