web.config中的connectionStrings丢失了吗?

时间:2016-11-21 10:38:42

标签: asp.net-mvc entity-framework asp.net-mvc-5 web-config

我有一个使用EF的MVC项目,当我第一次创建它时,我没有在DBContext中定义连接字符串,因为我想使用默认值,但是我打开了web.config文件而我没有&#39 ;找到if(args.length > 1){ int a = Integer.parseInt(args[0]); //What you want to do with you value. } 元素! 我想看到数据库的名称和使用的SQL服务器?..

修改

这是我的模型类:

connectionStrings

的web.config:

namespace MVCAppForTests.Models
{
    public class BookContext : DbContext
    {
        public DbSet<Book> Books { get; set; }
    }
    public enum Rating
    {
        Excellent,
        VeryGood,
        Good,
        OK,
        Bad
    }
    public class Book
    {
        public int ID { get; set; }
        public string Title { get; set; }
        [Required]
        public string Author { get; set; } = "Anonymous";
        public Rating Rating { get; set; }
        [DataType(DataType.Date)]
        public DateTime DateCreated { get; set; } = DateTime.Now;
    }
    public class Initializer : DropCreateDatabaseIfModelChanges<BookContext>
    {
        protected override void Seed(BookContext context)
        {
            var _books = new List<Book>
        {
            new Book { ID=1, Title="Awful Streets", Author="Tom Raouf", Rating= Rating.Good},
            new Book { ID=2, Title="Green Lights", Author="Sam Bruce", Rating= Rating.Bad},
            new Book { ID=3, Title="Bloodish breaths", Author="Yara Tarek", Rating= Rating.VeryGood},
            new Book { ID=4, Title="Happy inside", Author="Norman Zory", Rating= Rating.Bad},
            new Book { ID=5, Title="I lived again", Author="Adrian T. William", Rating= Rating.Excellent},
            new Book { ID=6, Title="And she knocked a door", Author="Tom Raouf", Rating= Rating.OK}
        };
            _books.ForEach(c => context.Books.Add(c));
            context.SaveChanges();
        }
    }
}

1 个答案:

答案 0 :(得分:0)

实体框架是关于约定的。如果您没有为它提供连接字符串(名称),它将按惯例确定一个。

MSDN: Entity Framework Connections and Models中解释了这一点:

  

如果您的应用程序中没有进行任何其他配置,则在DbContext上调用无参数构造函数将导致DbContext在Code First模式下运行,并且具有按约定创建的数据库连接。

     

[...]

     

在此示例中,DbContext使用派生上下文类的名称空间限定名称-Demo.EF.BloggingContext-作为数据库名称,并使用SQL Express或LocalDb为此数据库创建连接字符串。如果两者都已安装,将使用SQL Express。