我正在使用EF Code First和MVC3。
如果我在web配置中没有指定连接字符串,则应用程序可以正常工作。 在启动时它会创建数据库和表格,一切正常。
如果我为我创建的新空数据库指定连接字符串,则不会创建表,并且在运行应用程序时出现错误。错误是空指针必不可少的,因为该表不存在,我正在尝试查询它。
这是我的连接字符串:
<add name="MyContextName" connectionString="Data Source=.\sqlexpress;Initial Catalog=MyDatabaseName;Integrated Security=True" providerName="System.Data.SqlClient" />
MyContextClass
public class MyContextName : DbContext
{
public DbSet<Book> books{ get; set;}
}
答案 0 :(得分:2)
如果这是你的连接字符串,那么你有一个复制错误,
您已写过两次“数据源=”,
见下文
&lt; add name =“MyContextName”connectionString =“Data Source=
Data Source =。\ sqlexpress; Initial Catalog = MyDatabaseName; Integrated Security = True”providerName =“System.Data.SqlClient”/&gt;
答案 1 :(得分:2)
替换:
<add name="MyContextName" connectionString="Data Source=.\sqlexpress;Initial Catalog=MyDatabaseName;Integrated Security=True" providerName="System.Data.SqlClient" />
人:
<add name="MyContextName" connectionString="Data Source=|DataDirectory|databasename" providerName="System.Data.SqlClient" />
答案 2 :(得分:1)
我发现问题与我的过程有关。我创建了一个新的空数据库,然后将连接字符串复制到我的web配置。看起来你根本不想创建数据库。只需设置连接字符串,就像EF为您生成数据库一样。