C# MSDN实体框架代码第一教程:SQL错误

C# MSDN实体框架代码第一教程:SQL错误,c#,entity-framework,ef-code-first,sqlexception,C#,Entity Framework,Ef Code First,Sqlexception,我正在经历。 这是本教程第一部分的全部代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data.Entity; namespace CodeFirstNewDatabaseSample { class Program { static void Main(string[]

我正在经历。 这是本教程第一部分的全部代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.Entity;

namespace CodeFirstNewDatabaseSample
{
class Program
{
    static void Main(string[] args)
    {
        using (var db = new BloggingContext())
        {
            // Create and save a new Blog 
            Console.Write("Enter a name for a new Blog: ");
            var name = Console.ReadLine();

            var blog = new Blog { Name = name };
            db.Blogs.Add(blog);
            db.SaveChanges();

            // Display all Blogs from the database 
            var query = from b in db.Blogs
                        orderby b.Name
                        select b;

            Console.WriteLine("All blogs in the database:");
            foreach (var item in query)
            {
                Console.WriteLine(item.Name);
            }

            Console.WriteLine("Press any key to exit...");
            Console.ReadKey();
        }
    }
}

public class Blog
{
    public int BlogId { get; set; }
    public string Name { get; set; }

    public virtual List<Post> Posts { get; set; }
}

public class Post
{
    public int PostId { get; set; }
    public string Title { get; set; }
    public string Content { get; set; }

    public int BlogId { get; set; }
    public virtual Blog Blog { get; set; }
}

public class BloggingContext : DbContext
{
    public DbSet<Blog> Blogs { get; set; }
    public DbSet<Post> Posts { get; set; }
}
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用System.Threading.Tasks;
使用System.Data.Entity;
命名空间CodeFirstNewDatabaseSample
{
班级计划
{
静态void Main(字符串[]参数)
{
使用(var db=new BloggingContext())
{
//创建并保存新博客
Write(“输入新博客的名称:”);
var name=Console.ReadLine();
var blog=newblog{Name=Name};
添加(blog);
db.SaveChanges();
//显示数据库中的所有博客
var query=来自db.Blogs中的b
orderby b.Name
选择b;
WriteLine(“数据库中的所有博客:”);
foreach(查询中的var项)
{
Console.WriteLine(项目名称);
}
Console.WriteLine(“按任意键退出…”);
Console.ReadKey();
}
}
}
公共类博客
{
public int BlogId{get;set;}
公共字符串名称{get;set;}
公共虚拟列表发布{get;set;}
}
公营职位
{
公共int PostId{get;set;}
公共字符串标题{get;set;}
公共字符串内容{get;set;}
public int BlogId{get;set;}
公共虚拟博客{get;set;}
}
公共类BloggingContext:DbContext
{
公共数据库集博客{get;set;}
公共DbSet Posts{get;set;}
}
}
根据教程,编译此文件时应给出以下信息:

输入新博客的名称:ADO.NET博客
数据库中的所有博客:
ADO.NET博客
按任意键退出

但是我得到了一个未处理的SqlException:
在数据库“master”中创建数据库的权限被拒绝

教程是否缺少重要信息,或者我的设置是否有问题

编辑:所以我的同事说我的app.config中缺少连接字符串

添加后:

<connectionStrings>
    <add name="blogContext" connectionString="Server=(localdb)\v11.0;Integrated Security=true;" providerName="System.Data.SqlClient"/> 
</connectionStrings>


控制台应用程序运行了,当再次运行该程序时,我能够看到多个博客条目。但在教程的下一步中,如果要通过服务器资源管理器进行连接,则((localdb)\v11.0)或(.\SQLEXPRESS)都不会显示为选项。

您的DBContext似乎有问题。我认为它不应该试图进入你的“主”数据库。您的根配置文件是什么样子的?似乎尝试创建数据库的进程没有在sql server实例上创建数据库的适当权限。您需要向尝试创建数据库的帐户添加数据库创建权限。您是否成功创建了数据库和连接?如果是,则您的模型与数据库设计不同,请检查模型和SQL server中的关系。转到SQL server并创建一个空白数据库,让entity framework为您创建表,这似乎主要是因为权限问题。