我有一个使用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();
}
}
}
答案 0 :(得分:0)
实体框架是关于约定的。如果您没有为它提供连接字符串(名称),它将按惯例确定一个。
MSDN: Entity Framework Connections and Models中解释了这一点:
如果您的应用程序中没有进行任何其他配置,则在DbContext上调用无参数构造函数将导致DbContext在Code First模式下运行,并且具有按约定创建的数据库连接。
[...]
在此示例中,DbContext使用派生上下文类的名称空间限定名称-Demo.EF.BloggingContext-作为数据库名称,并使用SQL Express或LocalDb为此数据库创建连接字符串。如果两者都已安装,将使用SQL Express。