Pie*_*ces 12 c# sql asp.net-mvc entity-framework
我试图做这个教程http://www.asp.net/mvc/tutorials/getting-started-with-aspnet-mvc3/getting-started-with-mvc3-part4-cs但不是使用的精简版SQL Server我在本地计算机上使用完整安装.我阅读本教程的方式是实体框架假设从我定义的对象创建表.我的问题是,当我运行项目时,我一直收到无效的对象名称dbo.movies.我终于通过自己创建表来运行它,所以我知道连接字符串,一切都是正确的.
我的问题是,是否可以从C#中创建的对象生成表格,如果是这样的话?
Dis*_*ile 24
是否可以从C#中创建的对象生成表?
对的,这是可能的.在运行代码之前,您是否碰巧在Management Studio中手动创建了数据库?那可能是你的问题.使用Code First,默认约定是创建数据库(如果数据库尚不存在).如果数据库已经存在(即使没有表),那么它将只使用现有数据库(但它不会尝试创建表).
您可以删除数据库并尝试再次运行代码以查看它是否会为您创建它或将以下行放在Global.asax中:
Database.SetInitializer(new DropCreateDatabaseAlways<YourDbContextHere>());
Run Code Online (Sandbox Code Playgroud)
一旦运行,我建议将该行更改为:
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<YourDbContextHere>());
Run Code Online (Sandbox Code Playgroud)
这些名称空间在中定义 System.Data.Entity
所述DbContext类还公开它定义了以下有用的方法数据库属性:
Delete()
Create()
CreateIfNotExists()
Run Code Online (Sandbox Code Playgroud)
所以如果你这样定义你的类:
public class MyContext : DbContext {}
Run Code Online (Sandbox Code Playgroud)
你可以像这样构造一个实例:
MyContext db = new MyContext();
db.Database.Delete();
db.Database.Create();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
48774 次 |
| 最近记录: |