首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在xamarin表单中使用SQLite-Net?

如何在xamarin表单中使用SQLite-Net?
EN

Stack Overflow用户
提问于 2017-05-23 06:11:29
回答 1查看 2.6K关注 0票数 2

我已经在我的项目中安装了SQLite包。现在我想用它来做简单的CRUD操作。问题是,我读到的所有文件都让我感到困惑。有人能提示我在Xamarin.Forms中执行CRUD操作的适当步骤以接受值表单条目并将其存储在数据库中吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-23 07:04:04

我在我的工作应用程序中使用了这种方法。

  1. 安装SQLite-net-pcl
  2. 我使用异步方法。要排除锁,我使用以下类: 公共密封类AsyncLock {私有只读SemaphoreSlim _semaphore =新的SemaphoreSlim(1,1);私有只读任务_releaser;公共AsyncLock() { _releaser =Task.FromResult((IDisposable)新Releaser(this));}公共任务LockAsync() { var var= _semaphore.WaitAsync();返回wait.IsCompleted?_releaser : wait.ContinueWith((_,state) => ( IDisposable )state,_releaser.Result,CancellationToken.None,TaskContinuationOptions.ExecuteSynchronously,TaskScheduler.Default);}私有密封类释放器:IDisposable{私有只读AsyncLock m_toRelease;}{ m_toRelease._semaphore.Release();}}}
  3. 创建域(表): //基类用于表公共类实体{ PrimaryKey,AutoIncrement公共int Id { get;set;} //您的表公共类数据:实体{公共字符串Prop1 {get;set;}.}公共类Data2 :实体{公共字符串Prop2 {get;set;} .}
  4. 创建存储库: 公共类DataRepository { SQLiteAsyncConnection _db;私有静态只读AsyncLock Mutex =新AsyncLock();公共异步任务CreateDatabaseAsync(string path) {使用(等待Mutex.LockAsync().ConfigureAwait(false)) { _db= new SQLiteAsyncConnection(path);等待_db.CreateTableAsync();//创建其他表}公共异步任务保存(T实体),其中T: Entity,new() {item(等待Mutex.LockAsync().ConfigureAwait(False){等待_db.InsertAsync(实体);}公共异步任务删除(实体项){使用(等待Mutex.LockAsync().ConfigureAwait(false)) {等待_db.DeleteAsync( item);}}公共异步任务更新(T实体),其中T: Entity,new() { Task (等待Mutex.LockAsync().ConfigureAwait(false)) {等待_db.UpdateAsync(实体);}}.//其他基方法}
代码语言:javascript
复制
1. Create static field for DataRepository in your App class. Use this  App.Repo in your code.
App.Repo.Save(new Data             {                ...             }) ;

这是一个简单的使用示例。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44127032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档