使用Xamarin表单将更改保存到sqlite数据库

时间:2019-12-16 15:24:45

标签: sqlite xamarin.forms entity-framework-core

作为学校的一个项目,我们正在使用带有sqlite数据库的EF核心创建一个移动应用程序。 遵循MVVM模式和SimpleIoc进行依赖项注入。

一切正常,直到我调用dbContext.SaveChanges();方法为止。我有以下课程:

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>();

    } 
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; }
    }

当我进入UserRepository类以将用户添加到数据库时:

public bool AddUser(User user)
        {
            try
            {
                var context = new DatabaseContext();

                context.Users.Add(user);
                context.SaveChanges();
                return true;
            }
            catch (Exception)
            {
                return false;
            }
        }

当它试图运行context.SaveChanges();时。它说我的上下文为空。 或者,当我删除DatabaseContext类中除OnConfiguring和DbSet之外的所有内容时,收到以下异常: exception

任何帮助将不胜感激!

谢谢。

0 个答案:

没有答案