请教个EF code first DbContext问题

visual_studi 2013-01-27 05:19:58
一个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类

/// <summary>
/// Model
/// </summary>
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<Lodging> 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

/// <summary>
/// Context
/// </summary>
public class BreakAwayContext : DbContext
{
public DbSet<Destination> Destinations { get; set; }
public DbSet<Lodging> Lodgings { get; set; }
}


Main

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();
}
...全文
227 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
theone5288 2014-04-04
  • 打赏
  • 举报
回复
连Mysql也有这个错误呢
neell 2013-01-28
  • 打赏
  • 举报
回复
唉,说句实话,EF并不适合初学者。最最起码的要求,你首先得会用ADO.NET啊。 而要学会ADO.NET,你首先得知道SQL SERVER和SQL EXPRESS怎么玩啊
visual_studi 2013-01-28
  • 打赏
  • 举报
回复
哦。弄错了。是(localdb)\v11.0
visual_studi 2013-01-28
  • 打赏
  • 举报
回复
谢谢大家的回答,问题解决了, 安装vs2012就给自动安装了localdb,因为我本地没 .\SQLEXPRESS,我那代码运行成功后,数据库就保存在localdb中了,如果想在sql可视化界面管理数据库的话,服务器名称要改成(localdb)\v110,身份验证为:windows身份验证就可以看到刚生成的数据库了
webdiyer 2013-01-28
  • 打赏
  • 举报
回复
看看App_Data文件夹下有没有数据库
  • 打赏
  • 举报
回复
建立数据库时,有DefaultName,你的数据库是什么版本,或者重新安装时手动修改。 . 是本地数据库服务,所以正常用Express连接数据库时,不需要写数据库DefaultName也可以连接。
threenewbee 2013-01-28
  • 打赏
  • 举报
回复
http://bbs.csdn.net/topics/360154255

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧