C# 实体框架创建与模型中每个类对应的单独数据库
我已经开始在ASP.NET MVC4中使用实体框架 我在C# 实体框架创建与模型中每个类对应的单独数据库,c#,asp.net,sql-server,asp.net-mvc-4,entity-framework-5,C#,Asp.net,Sql Server,Asp.net Mvc 4,Entity Framework 5,我已经开始在ASP.NET MVC4中使用实体框架 我在Model文件夹中创建了3个类,并为每个模型创建了控制器 现在,当我运行应用程序时,它已经创建了对应于每个模型类的独立数据库 有没有办法只使用一个数据库?是否为每个类创建单独的上下文 public class Employee { [Key] public int EmpId { get; set; } // < Can I make a suggestion here
Model
文件夹中创建了3个类,并为每个模型创建了控制器
现在,当我运行应用程序时,它已经创建了对应于每个模型类的独立数据库
有没有办法只使用一个数据库?是否为每个类创建单独的上下文
public class Employee
{
[Key] public int EmpId { get; set; } // < Can I make a suggestion here
// and suggest you use Id rather than
// EmpId? It looks better referring to
// employee.Id rather than employee.EmpId
[Required] public string Fullname { get; set; }
...
}
public class AnotherClass
{
...
}
重要的是,所有模型都在相同的上下文中
使用上下文
var context = new MyDbContext();
var employees = context.employees.ToList(); // I prefer storing the data as an IList
这将告诉EF查询数据库并将数据存储在employees变量中。您的上下文是如何定义的?请发布您的上下文类。我的上下文类类似于-'public class EmployeeDbContext:DbContext{public DbSet employees{get;set;}}'我的上下文类类似于-1。这是我的模型类
公共类Employee{[Key]public int EmpId{get;set;}[Required]公共字符串全名{get;set;}[Required]公共字符串出生日期{get;set;}[Required]公共字符串指定{get;set;}[Required]公共字符串电子邮件{get;set;}[Required]公共字符串性别{get;set;}[Required]公共字符串联系人No{get;set;}[Required]公共字符串角色{get;set;}}
这是我的上下文类感谢您的回复。你是说我应该在一个类中创建所有的DbSet。但我认为,如果我创建“MyDbContext”类的对象,它将为该类中的所有数据库集分配内存。让我知道,如果我错了或者我的想法是对的,我们如何避免这种情况。我想你误解了ef的工作原理。当您使用context.employees.ToList()时,此时它查询数据库并使用内存。将其列在一个类中并不是这样。谢谢您的回复。现在我明白了。
public MyDbContext() : base("ConnectionString") { }
var context = new MyDbContext();
var employees = context.employees.ToList(); // I prefer storing the data as an IList