我正在学习实体框架。我使用Entity框架代码第一种方法创建了一个演示应用程序(没有指定任何连接字符串)。
static void Main(string[] args)
{
CreateBlog();
}
private static void CreateBlog()
{
var ObjBlog = new Blog
{
BloggerName = "Rasmita",
Title = "EntityFramework"
};
var Ctx = new Context();
Ctx.Blogs.Add(ObjBlog);
Ctx.SaveChanges();
}
控制台App正常运行,它创建了数据库,我可以从中获取数据。但是,我无法看到它。我的意思是我想知道它的创建地点?在本地Sql服务器或Visual Studio本地db ???
App.Config中
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
</configuration>
上下文类
using System.Data.Entity;
using BlogsApp;
namespace DataLayer
{
public class Context:DbContext
{
public DbSet<Blog> Blogs { get; set; }
public DbSet<Post> Posts { get; set; }
}
}
我正在使用EntityFramework 6.1.1,.Net Framework 4.5,Visual Studio 2012.我在我的机器上安装了SqlServer 2012。请帮我找到Db
答案 0 :(得分:3)
它位于您的SQLEXPRESS实例中。 可能会被称为ConsoleApplication1.Context。 如果你有sql server工作室管理器使用。\ SQLEXPRESS作为服务器名称,你会看到DB。您可以从那里获取文件位置,但应位于
C:\ Program Files(x86)\ Microsoft SQL Server \ MSSQL.1 \ MSSQL \ Data
或
C:\ Program Files \ Microsoft SQL Server \ MSSQL.1 \ MSSQL \ Data
如果你正在运行32位窗口。
从这里
&#34;如果安装了SQL Express(包含在Visual Studio 2010中),则会在本地SQL Express实例(。\ SQLEXPRESS)上创建数据库。如果未安装SQL Express,则Code First将尝试使用LocalDb((localdb)\ v11.0) - Visual Studio 2012中包含LocalDb&#34;
从这里
答案 1 :(得分:3)
如果没有指定连接字符串并且没有默认的SQLServerExpress实例,EntityFramework会在您的用户文件夹中创建sql数据库文件(例如C:\ Users [yourusername]),其名称与您的项目相同。
此文件似乎与SQL Server无关,即您可以自由移动它们。
答案 2 :(得分:2)
根据您的配置文件,您的默认连接工厂是:
System.Data.Entity.Infrastructure.SqlConnectionFactory
这是SQL Server的连接工厂。由于您未提供连接字符串,因此实体框架将尝试连接到名为.\SQLEXPRESS
的SQL Server实例,并使用您的上下文的完整类型名称创建数据库{{1 }}
您可以通过更改默认连接工厂并调用DataLayer.Context
构造函数的特殊重载来更改这两个默认值,但通常没有人烦恼。
你应该做的几乎总是添加一个以你的上下文命名的连接字符串:
DbContext
或
<connectionStrings>
<add name="Context"
providerName="System.Data.SqlClient"
connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=Blogging;Integrated Security=True;MultipleActiveRecordSets=True"/>
</connectionStrings>