一个code first 入门的代码哦。根据园子里的代码敲的,我代码运行成功了。但在数据库没有生成数据库。
园子里这样说:
当没有显示设置数据连接的时候,默认的数据库是:.\SQLEXPRESS。如果本地没有SQLEXPRESS,EF会尝试LocalDb ((localdb)\v11.0) .\SQLEXPRESS
这句话的意思是本地没有 .\SQLEXPRESS就会尝试LocalDb ((localdb)\v11.0) .\SQLEXPRESS是吗,但我本地是没有.\SQLEXPRESS这个呢。我链接数据库的服务器名称就是一个点 . 那上面那句话EF就会这样找吗?((localdb)\v11.0) .\SQLEXPRESS
那不是还在找这个吗?.\SQLEXPRESS 我没有。那不还是找不到。会的帮我解决下。谢谢了。
补充一下:我是vs2012开发工具,如果我导入EF4.0就会报错:提供程序未返回 ProviderManifestToken 字符串。但我通过NuGet安装的,这个安装的是EF5
这样就不报错。执行成功。数据库没生成数据库。会的也帮我解答下。谢谢。我是刚学者弄EF。
Model类
View Code
///
/// Model
///
public class Destination
{
public int DestinationId { get; set; }
public string Name { get; set; }
public string Country { get; set; }
public string Description { get; set; }
public byte[] Photo { get; set; }
public List Lodgings { get; set; }
}
public class Lodging
{
public int LodgingId { get; set; }
public string Name { get; set; }
public string Owner { get; set; }
public bool IsResort { get; set; }
public Destination Destination { get; set; }
}
Context
View Code
///
/// Context
///
public class BreakAwayContext : DbContext
{
public DbSet Destinations { get; set; }
public DbSet Lodgings { get; set; }
}
Main
View Code
static void Main(string[] args)
{
var destination = new Destination
{
Country = "Indonesia",
Description = "EcoTourism at its best in exquisite Bali",
Name = "Bali"
};
using (var context = new BreakAwayContext())
{
context.Destinations.Add(destination);
context.SaveChanges();
}
Console.WriteLine("OK");
Console.ReadKey();
}
1 回答
皈依舞
TA贡献1851条经验 获得超3个赞
你可以这么认为,当你计算机中有本地数据库比如你安装了sql2008那它就会自动认为这个是你的数据库,没有话连接sql exress,再没有连接localdb,localdb是属于sql2012的一个比sql express更轻量级的数据库。
ef不用非得用nuget安装,其实你引用那个dll效果是一样。
- 1 回答
- 0 关注
- 473 浏览
添加回答
举报
0/150
提交
取消