Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用xamarin表单保存对sqlite数据库的更改_Sqlite_Xamarin.forms_Entity Framework Core - Fatal编程技术网

使用xamarin表单保存对sqlite数据库的更改

使用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

作为学校的一个项目,我们正在使用EF core和sqlite数据库创建一个移动应用程序。 遵循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>();

    } 
当它尝试运行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;
            }
        }