Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 无法获取EF5.0 codefirst迁移以生成初始数据库_Asp.net_Web Applications_Entity Framework 5 - Fatal编程技术网

Asp.net 无法获取EF5.0 codefirst迁移以生成初始数据库

Asp.net 无法获取EF5.0 codefirst迁移以生成初始数据库,asp.net,web-applications,entity-framework-5,Asp.net,Web Applications,Entity Framework 5,我正在编写我的第一个web应用程序,并试图先学习EF5.0代码。我在谷歌和MSDN上花了两天的时间,试图找出如何让这些东西发挥作用,但没有一个是真正适合初次学习者的。所以,有人能帮我用代码示例说明我做错了什么吗?当我在debug中运行我的应用程序时,没有创建数据库,当我尝试从VS2012的包管理器配置迁移时,我收到一个错误,上面写着“从数据库获取提供程序信息时出错”。打击的是我的“table”.cs文件、Context.cs和web.config。从我所读到的所有东西来看,我没有遗漏任何东西 表

我正在编写我的第一个web应用程序,并试图先学习EF5.0代码。我在谷歌和MSDN上花了两天的时间,试图找出如何让这些东西发挥作用,但没有一个是真正适合初次学习者的。所以,有人能帮我用代码示例说明我做错了什么吗?当我在debug中运行我的应用程序时,没有创建数据库,当我尝试从VS2012的包管理器配置迁移时,我收到一个错误,上面写着“从数据库获取提供程序信息时出错”。打击的是我的“table”.cs文件、Context.cs和web.config。从我所读到的所有东西来看,我没有遗漏任何东西

表1.cs:

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace FFCollection.DAL
{
    public class Item
    {
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public Int16 ItemID { get; set; }

        [Required(ErrorMessage = "Item Name is required.")]
        [Column("ItemName")]
        public string Name { get; set; }

        public Int16 RegionID { get; set; }
        public virtual Region Region { get; set; }
    }
}
Context.cs:

using System.Data.Entity;

namespace FFCollection.DAL
{
    public class FullContext : DbContext
    {
        public FullContext() : base("FFCollection") { }

        public DbSet<Item> Items { get; set; }
    }
}
使用System.Data.Entity;
命名空间FFCollection.DAL
{
公共类FullContext:DbContext
{
public FullContext():基(“FFCollection”){}
公共数据库集项{get;set;}
}
}
web.confg:

<?xml version="1.0" encoding="utf-8"?>

<configuration>

  <connectionStrings>
    <add name="CollectionDB"
          connectionString="Data Source=192.198.0.2; Initial Catalog=FFColection; User ID=; Password=!" />
  </connectionStrings>

  <system.web>
    <compilation debug="true" targetFramework="4.5" />

    <customErrors mode="Off" />

    <httpRuntime targetFramework="4.5" />
  </system.web>
</configuration>

我知道这个地方应该只适合那些经验丰富的人,他们有多年的提问经验,但我找不到有帮助的地方,我迷路了,所以我真的需要一些帮助才能跳到哪里。如果有人能帮我弄清楚为什么数据库没有被创建,我可以继续我的代码体验first EF 5.0

试试这个:

<add name="FFColection"
      connectionString="Data Source=192.198.0.2;
                        Initial Catalog=FFColection;
                        User ID=; Password=***;MultipleActiveResultSets=True" 
      providerName="System.Data.SqlClient"/>

构造函数
base(“FFCollection”)
将字符串参数作为完整连接字符串或配置文件中连接字符串的名称。因此,构造函数和名称中应该是“ffcollection”


也许服务器的地址不够。您可能必须附加sql server实例的名称,如
192.198.0.2\sql2008
(请与数据库计算机上的sql server management studio联系)。

代码已写入。问题是EF在首次尝试访问数据库之前不会创建数据库。因此,我不得不在index.aspx页面中添加一些代码,以尝试向数据库中添加一项。这导致它创建了数据库

您可以尝试将以下内容添加到连接字符串条目
providerName=“System.Data.SqlClient”
中,使其看起来像这样吗?顺便说一句。我不认为stackoverflow只适用于有经验的人…@Pawel补充道,这给了我一个错误:“从数据库获取提供程序信息时发生了一个错误。这可能是由于实体框架使用了不正确的连接字符串造成的。有关详细信息,请检查内部异常,并确保连接字符串正确。”但是我只有一个连接字符串,所以EF不应该默认为那个字符串,或者我必须在某个地方声明它吗?我注意到了拼写错误并更正了它。这修复了错误消息,但仍然没有生成DB。我从来没有指定过实例名称,只是为了测试,我给出了我的生产服务器的IP,它在一个没有实例名称的现有网站上工作,但仍然没有创建任何数据库。或者
context.database.Create()
:)我在查找查询数据库的简单方法时遇到了这个问题,但不确定将它放在哪里(当时正在考虑Global.asax,但由于数据库不是默认Global.asax页面中的上下文选项,因此无法准确地确定需要什么)