我正在使用 Mono For Android 来创建我的 Android 应用程序。
我的解决方案结构如下:
- 核心 -> 包含我的业务逻辑的 .Net 类库。没有安卓代码。需要可互操作。
- Core.AndroidLib -> 一个 Android 类库。包含 Android 特定代码
- MyApp -> Android 应用程序项目。包含布局、活动等。
核心包含我的实体(即Student
)。我的Student
班级有一个财产IEnumerable<Schedule> Schedules
。此属性由 Web 服务 ( GetAllSchedules()
) 填充。为了节省资源,从服务下载的数据缓存到本地 SQLite 数据库(缓存逻辑位于 Core.AndroidLib 中)。每当请求调度数据时,它首先检查缓存,并且仅在需要其他数据时才转到 Web 服务。
到目前为止,Core 仍然是一个纯 .Net 类库。
在阅读了 Cursors 之后,我意识到 Cursor 在查询方面更有效,因为只有在需要时才“获取”数据(而不是IEnumerable<Schedule> Schedules
一次性预先填充我的所有数据并将其存储在列表中)。
我没有将 Schedule 数据存储在 List 中,而是考虑将其存储在 Cursor(即ICursor Schedule
)中,但是,这种方法会使我的 Core 库无法互操作,因为它将使用 Android 库中的类。
我应该只将 Schedule 数据保留在列表中并从 SQL ( ) 中预填充数据,Select * from Schedules
还是应该公开一个 ICursor?公开 ICursor 会比获取所有数据并将其存储在列表中更有效吗?