1
数据库在运行我的WPF应用程序时未创建。这有什么错我的代码:使用EF CodeFirst的WPF MVVM
的App.config
<connectionStrings>
<add name="JanathaPOSConn"
connectionString="Server=.\SQLEXPRESS;Database=JanathaDb;Trusted_Connection=true"
providerName="System.Data.SqlClient" />
</connectionStrings>
POCO类1:
namespace JanathaPOS.Model
{
[Table("UserRoles")]
public class UserRole
{
[Key]
public string Id { get; set; }
[MaxLength(50)]
public string Name { get; set; }
[MaxLength(50)]
public string Description { get; set; }
}
}
POCO类2:
namespace JanathaPOS.Model
{
[Table("Users")]
public class User
{
[Key]
public string Id { get; set; }
[MaxLength(50)]
public string Name { get; set; }
}
}
上下文类:
namespace JanathaPOS.Model
{
/// <summary>
///
/// </summary>
class JanathaPosDbContext : DbContext
{
private static JanathaPosDbContext _context;
/// <summary>
///
/// </summary>
/// <returns></returns>
public static JanathaPosDbContext GetContext()
{
if (_context == null)
{
_context = new JanathaPosDbContext();
}
return _context;
}
/// <summary>
///
/// </summary>
public JanathaPosDbContext() : base("JanathaPOSConn") { }
/// <summary>
///
/// </summary>
/// <param name="modelBuilder"></param>
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<UserRole>();
modelBuilder.Entity<User>();
base.OnModelCreating(modelBuilder);
}
public DbSet<UserRole> UserRoles { get; set; }
public DbSet<User> Users { get; set; }
}
}
XAML:
namespace JanathaPOS
{
/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<JanathaPosDbContext>());
base.OnStartup(e);
}
}
}
您是收到错误或异常?它是什么?您可能不希望在应用程序的生命周期中拥有单一的上下文。 – Steve
获取没有错误,没有例外,但没有创建数据库。 – Jobi
对不起!我是WPF的初学者。你能解释一下吗? – Jobi