Android Studio / Kotlin: неразрешенная ссылка (база данных комнат) - PullRequest
0 голосов
/ 28 мая 2020

Я пытаюсь создать репозиторий для своей базы данных, но всегда получаю Несоответствие типов

Требуется: Список, Найдено: Список

и Неразрешенная ссылка

Ни один из следующих кадидатов неприменим из-за несоответствия типа получателя: частное финальное развлечение RoomUserData.toDomainModel (): UserData, определенное в com.example, series.repository.Repository)

ошибка.

Мой класс репозитория:

class Repository(private val userDataDao: UserDataDao) {

    fun getAllUserData(): LiveData<List<UserData>> {
        return userDataDao.getAllUserData()
                .map {roomUserDatas ->
                    roomUserDatas.map {roomUserData ->
                        roomUserData.toDomainModel()}
                }
    }

    suspend fun insert(data: UserData) = withContext(Dispatchers.IO) {
        userDataDao.insertUserData(data.toRoomModel())
    }

    private fun RoomUserData.toDomainModel(): UserData {
        return UserData(
                id = id,
                UserName = UserName,
                SeriesName = SeriesName,
                SeriesNote = SeriesNote
        )
    }

    private fun UserData.toRoomModel(): RoomUserData {
        return RoomUserData(
                UserName = UserName,
                SeriesName = SeriesName,
                SeriesNote = SeriesNote
        )
    }
}

Класс Dao:

@Dao
interface UserDataDao {

    @Insert
    fun insertUserData(data: RoomUserData)

    @Query("SELECT * FROM userDatas")
    fun getAllUserData(): LiveData<List<UserData>>

    @Update
    fun updateUserData(data: UserData): Int

    @Delete
    fun deleteUserData(data: UserData)

}

И мой класс RoomData:

@Entity(tableName = "userDatas")
data class RoomUserData(
        @PrimaryKey(autoGenerate = true)
        val id: Long = 0,
        val UserName: String,
        val SeriesName: String,
        val SeriesNote: String
)

Это ошибка, которую я получаю: ссылка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...