我正在尝试使用代码优先方法创建数据库。当我运行以下代码时,出现以下异常。我们怎样才能克服这一点?
笔记:
- 我的系统上有 SQL Server 2008 R2。
- 我没有使用任何配置文件。我假设它将使用约定创建数据库
- 已经没有打开的连接;我刚刚重新启动系统并进行了测试。还是同样的问题。
- EntityFramework.dll的运行时版本是 v4.0.3xxx
例外:
提供者未返回 ProviderManifestToken 字符串
留言:
此操作需要连接到“主”数据库。无法创建到“主”数据库的连接,因为原始数据库连接已打开并且凭据已从连接字符串中删除。提供一个未打开的连接。
内部异常:
建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供者:命名管道提供者,错误:40 - 无法打开与 SQL Server 的连接)
代码:
using System.Data.Entity;
namespace LijosEF
{
public class Dinner
{
public int DinnerID { get; set; }
public int Title { get; set; }
}
public class RSVP
{
public int RSVPID { get; set; }
public int DinnerID { get; set; }
public virtual Dinner Dinner { get; set; }
}
//System.Data.Entity.DbContext is from EntityFramework.dll
public class NerdDinners : System.Data.Entity.DbContext
{
public DbSet<Dinner> Dinners { get; set; }
public DbSet<RSVP> RSVPs { get; set; }
}
}
namespace LijosEF
{
class Program
{
static void Main(string[] args)
{
using (var db = new NerdDinners())
{
var product = new Dinner { DinnerID = 1, Title = 101 };
db.Dinners.Add(product);
int recordsAffected = db.SaveChanges();
}
}
}
}