Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.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
C# 未使用EntityFramework CodeFirst方法创建数据库_C#_Entity Framework 6 - Fatal编程技术网

C# 未使用EntityFramework CodeFirst方法创建数据库

C# 未使用EntityFramework CodeFirst方法创建数据库,c#,entity-framework-6,C#,Entity Framework 6,我是Entityframework的新手。我正在尝试使用Entityframework的Codefirst方法创建数据库。我在DAL层中有我的代码: [Table("Category")] public class Category { [Key] public int CategoryId { get; set; } [Required] [Column(TypeName="varchar")] [StringLength(200)] pub

我是Entityframework的新手。我正在尝试使用Entityframework的Codefirst方法创建数据库。我在DAL层中有我的代码:

 [Table("Category")]
public class Category
{
    [Key]
    public int CategoryId { get; set; }

    [Required]
    [Column(TypeName="varchar")]
    [StringLength(200)]
    public string CategoryName { get; set; }
}


public class DatabaseContext:DbContext
{
    public DatabaseContext()
        : base("DbConnection")
    {
      //Added the following but still it doesnt work
      //Database.SetInitializer<DatabaseContext>(new CreateDatabaseIfNotExists<DatabaseContext>());
    }

    public DbSet<Category> Categories { get; set; }
}
[表格(“类别”)]
公共类类别
{
[关键]
public int CategoryId{get;set;}
[必需]
[列(TypeName=“varchar”)]
[长度(200)]
公共字符串CategoryName{get;set;}
}
公共类DatabaseContext:DbContext
{
公共数据库上下文()
:base(“DbConnection”)
{
//添加了以下内容,但仍然不起作用
//SetInitializer(新的CreateDatabaseIfNotExists());
}
公共数据库集类别{get;set;}
}
DAL层的App.Config文件中的连接字符串

<connectionStrings>
<add name="DbConnection"
     connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=dbPdtCgry;uid=admin;password=admin123;"
      providerName="System.Data.SqlClient"></add>

这不会在Sql server管理中创建数据库。但是,
DbConnection Log file&mdf file
是在App_数据中创建的,我可以添加、更新和删除数据


我在这里遗漏了什么吗???

可能是您在连接字符串中遗漏了Server=localhost\SQLserverInstanceName,因为DB是在您的应用程序数据上创建的,但不是在您的SQL Server的默认文件夹中创建的

我总是这样一步一步地播种,然后我知道我没有遗漏任何东西

   <connectionStrings>
    <add name="LibraryDb" connectionString="Data Source=(localdb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\LibraryDb.mdf;Integrated Security=True; MultipleActiveResultSets=True;" providerName="System.Data.SqlClient" />
  </connectionStrings>
否则,将不会为任何数据设定种子


希望有帮助

谢谢设置
Server=localhost\SQLserverInstanceName
解决了这个问题
 public class Author
{
    [Key]
    public int id { get; set; }        
    [Required(ErrorMessage = "You Need to Enter A Author Name ")]
    public string AuthorName { get; set; }
    public string Address { get; set; }
    public virtual List<book> books{ get; set; }

}
public class Book
{
    public int id { get; set; }
    public string BookName { get; set; }
    [DataType(DataType.Date), DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}")]
    public DateTime DateofPublish { get; set; }
    public int id { get; set; }

    public virtual Author Author{ get; set; }
}

public class LibraryDb: DbContext
{
    public DbSet<Author> Authors{ get; set; }
    public DbSet<Book> Books{ get; set; }

    public LibraryDb() : base("LibraryDb") { }

}
public class LibraryInitiliser:DropCreateDatabaseAlways<LibraryDb>
{
    protected override void Seed(LibraryDb context)
    {
        var book= new List<Author>
        {
            new Author() { AuthorName = "Naame1", Address = "dublin", Book= new List<Book>
            {
                new Book() { BookName = "Naae1", PublishDate= DateTime.Parse("01/02/1981")  },
                 new Book() { BookName = "Naae1", PublishDate= DateTime.Parse("01/02/1981")  },
                new Book() { BookName = "Naae1", PublishDate= DateTime.Parse("01/02/1981")  }
            } },
            new Author() { AuthorName = "Naame1", Address = "dublin", Book= new List<Book>
            {
                new Book() { BookName = "Naae1", PublishDate= DateTime.Parse("01/02/1981")  },
                 new Book() { BookName = "Naae1", PublishDate= DateTime.Parse("01/02/1981")  },
                new Book() { BookName = "Naae1", PublishDate= DateTime.Parse("01/02/1981")  }
            } },

            } }

        };

        book.ForEach(m => context.Library.Add(m));
        context.SaveChanges();

        base.Seed(context);
    }
}
Database.SetInitializer(new LandLordInitiliser());