需要帮助,我是MVC和EF的新手
因此,我尝试使用代码优先方法来创建数据库。 我指定了以下连接字符串
<add connectionString="Data Source=(local);Initial Catalog=SalesERPDB;Integrated Security=True"
name="SalesERPDAL"
providerName="System.Data.SqlClient"/>
</connectionStrings>
,我希望EF创建一个名为SalesERPDB的数据库。而是创建了一个具有以下名称“ MVC.DataAccessLayer.SalesERPDAL”的数据库。其中MVC.DataAccessLayer是声明SalesERPDAL(一个类)并继承DBcontext的命名空间。
简而言之,EF会使用继承DBcontext的类的标准名称来命名数据库。
namespace MVC.DataAccessLayer
{
public class SalesERPDAL : DbContext //i think it will help in interacting with DB
{
protected override void OnModelCreating(DbModelBuilder modelBuilder) //i think used to build a model
{
modelBuilder.Entity<Employee>().ToTable("TblEmployee");
base.OnModelCreating(modelBuilder);
}
public DbSet<Employee> DALEmployees { get; set; } //Dbset will represent all the employees that can be queried from the database.
}
}
我有2个问题:
对不起,如果是重复的问题。
答案 0 :(得分:2)
缺少构造函数方法。应该将ConnectionString名称作为基本方法的参数来提供,以便您的应用程序可以知道使用什么名称来创建数据库。否则,它将创建名为DbContext类名称的数据库(即MVC.DataAccessLayer.SalesERPDAL)。
可以添加一个构造方法,例如:
public SalesERPDAL() : base("SalesERPDAL") { }