使用xamarin表单保存对sqlite数据库的更改
作为学校的一个项目,我们正在使用EF core和sqlite数据库创建一个移动应用程序。 遵循MVVM模式和SimpleIoc进行依赖注入 在我调用dbContext.SaveChanges()方法之前,一切都正常;我有以下课程:使用xamarin表单保存对sqlite数据库的更改,sqlite,xamarin.forms,entity-framework-core,Sqlite,Xamarin.forms,Entity Framework Core,作为学校的一个项目,我们正在使用EF core和sqlite数据库创建一个移动应用程序。 遵循MVVM模式和SimpleIoc进行依赖注入 在我调用dbContext.SaveChanges()方法之前,一切都正常;我有以下课程: public class ViewModelLocator { public ViewModelLocator() { SimpleIoc.Default.Register<IUserService
public class ViewModelLocator
{
public ViewModelLocator()
{
SimpleIoc.Default.Register<IUserService, UserService>();
SimpleIoc.Default.Register<IUserRepository<User>, UserRepository>();
SimpleIoc.Default.Register<RegistrationPageViewModel>();
SimpleIoc.Default.Register<LoginPageViewModel>();
}
public RegistrationPageViewModel RegistrationVM => SimpleIoc.Default.GetInstance<RegistrationPageViewModel>();
public LoginPageViewModel LoginVM => SimpleIoc.Default.GetInstance<LoginPageViewModel>();
}
当它尝试运行context.SaveChanges()时;它说我的上下文是空的。
或者,当我删除DatabaseContext类中除OnConfigurang和DbSet之外的所有内容时,我会收到以下异常:
非常感谢您的帮助
提前感谢。您在哪个平台上运行此功能
C:\temp\SplitbillMobile.db
不是iOS/Android的有效路径使用Android平台安卓设备不知道桌面文件系统。看见
public class DatabaseContext : DbContext
{
public DatabaseContext()
{
this.Database.EnsureCreated();
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite(@"Data Source = C:\temp\SplitbillMobile.db") ;
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<User>().ToTable("Users");
}
public DbSet<User> Users { get; set; }
}
public bool AddUser(User user)
{
try
{
var context = new DatabaseContext();
context.Users.Add(user);
context.SaveChanges();
return true;
}
catch (Exception)
{
return false;
}
}