gpt4 book ai didi

sqlite - 在Windows Phone 8.1上使用SQLite-是否需要ORM?

转载 作者:行者123 更新时间:2023-12-03 18:29:28 25 4
gpt4 key购买 nike

我正在使用Windows Phone 8.1应用程序,需要使用数据库,直到有人问我正在使用什么ORM时,这才成为问题。

因此,我从http://sqlite.org下载并安装了SQLite.net库,并将其添加到我的项目中,还添加了nuget包,这解决了我遇到的错误。

现在,我已经创建了与数据库以及基于模型的表的连接。我的问题是,ORM进入哪里?我在做什么,我不需要做什么?

我的数据库在设计上非常简单,只有两个表。之所以需要它,是因为以后需要使用MS Office API导出数据。

请帮忙。

最佳答案

对象关系映射(ORM)–使您无需编写SQL语句即可从数据库CRUD对象的库。 SQLite.NET库是非常精简的ORM。
看来您做对了,但是可以按照以下分步说明进行检查:


向您的解决方案中添加一个新项目,例如YourProject.SQLite,或在现有的适当项目之一中创建一个子文件夹。
通过nuget添加sqlite-net依赖项。
安装SQLite for Windows Phone扩展名。
现在你可以:

创建连接_connection = new SQLiteAsyncConnection(DatabaseName);
创建数据库等待_connection.CreateTablesAsync(typeof(SyncFile), typeof(TransferFile));
CRUD对象await _connection.InsertAsync(entity); _connection.UpdateAsync(entity);



我建议您也使用通用存储库模式。它看起来像:

public class Repository<TEntity> : IRepository<TEntity> where TEntity : class, new()
{
private readonly SQLiteAsyncConnection _connection;
public Repository(SQLiteAsyncConnection connection)
{
_connection = connection;
}
public async Task<TEntity> GetByIdAsync(object id)
{
return await _connection.FindAsync<TEntity>(id);
}
public async Task<IReadOnlyCollection<TEntity>> GetAllAsync()
{
return await _connection.Table<TEntity>().ToListAsync();
}
public async Task<IReadOnlyCollection<TEntity>> GetWhereAsync(Expression<Func<TEntity, bool>> predicate)
{
return await _connection.Table<TEntity>().Where(predicate).ToListAsync();
}
public async Task AddAsync(TEntity entity)
{
await _connection.InsertAsync(entity);
}
public async Task UpdateAsync(TEntity entity)
{
await _connection.UpdateAsync(entity);
}
public async Task DeleteAsync(TEntity entity)
{
await _connection.DeleteAsync(entity);
}
}

关于sqlite - 在Windows Phone 8.1上使用SQLite-是否需要ORM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26670639/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com