无法获得EF5.0代码首次迁移以生成初始数据库

时间:2012-11-24 01:56:44

标签: asp.net web-applications entity-framework-5

我正在编写我的第一个Web应用程序,并且我正在尝试首先学习EF 5.0代码。我花了最近两天在谷歌和MSDN试图弄清楚如何使这些东西工作,但没有一个是第一次学习者的treally面向。那么有人可以帮助我使用代码示例与我做错了什么?当我在调试中运行我的应用程序时没有创建数据库,当我尝试从VS2012的程序包管理器配置迁移时,我收到一条错误消息“从数据库获取提供程序信息时发生错误”。打击是我的“表”.cs文件,Context.cs和web.config。从我所看到的所有东西中我都可以看到,我没有遗漏任何东西。

table.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; }
    }
}

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>

我知道这个地方应该只适用于经验丰富的人,他们有多年的经验可以提出问题,但我没有在哪里帮助而且我迷失了所以请你真的需要一些帮助来跳跃。如果有人可以帮我弄清楚为什么没有制作数据库我可以继续我的代码首次实现EF 5.0

2 个答案:

答案 0 :(得分: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")将字符串参数作为完整连接字符串或配置文件中的连接字符串的名称。所以它应该是构造函数中的“FFColection”和名称。

也许服务器的地址不够用。您可能必须附加sql server实例的名称,例如192.198.0.2\sql2008(请在数据库计算机上查看Sql Server管理工作室)。

答案 1 :(得分:0)

代码写的问题是EF在第一次尝试访问它之前不会创建数据库。因此,我必须在index.aspx页面中添加一些代码,以尝试将项目添加到数据库中。这导致它创建数据库