小编Shi*_*ppy的帖子

Kotlin with Room and Dagger - 编译错误

我正在处理我的第一个Android kotlin应用程序.我的第一个活动是使用模拟数据,我现在正在尝试从数据库中获取数据,但代码将无法编译.

Kotlin代码:

@Dao
interface TagGroupDao {

    @Query("select * from TagGroup")
    fun getAll(): LiveData<List<TagGroup>>
}
Run Code Online (Sandbox Code Playgroud)

这已经生成了这个java代码:

public class TagGroupDao_Impl implements TagGroupDao {
  private final RoomDatabase __db;

  public TagGroupDao_Impl(RoomDatabase __db) {
    this.__db = __db;
  }

  @Override
  public LiveData<List<TagGroup>> getAll() {
    final String _sql = "select * from TagGroup";
    final RoomSQLiteQuery _statement = RoomSQLiteQuery.acquire(_sql, 0);
    return new ComputableLiveData<List<TagGroup>>() {
      private Observer _observer;

      @Override
      protected List<TagGroup> compute() {
        if (_observer == null) {
          _observer = new Observer("TagGroup") {
            @Override
            public void onInvalidated(@NonNull Set<String> …
Run Code Online (Sandbox Code Playgroud)

android kotlin dagger android-room

3
推荐指数
1
解决办法
806
查看次数

如何让 EFCore 内存数据库自动递增非关键字段

我们有一个实体以基于自动递增的 int 属性的另一个人类可读的键键控在 guid 上。这在运行应用程序时按预期工作。

出于测试目的,我们使用了 EF 内存数据库,但这似乎只会在列也是键的情况下自动递增。

使用属性注释属性或 fluent API 都没有效果。

    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int OrderNumber { get; private set; }

    ===========

    modelBuilder.Entity<Order>(order =>
    {
        order.Property(p => p.OrderNumber).ValueGeneratedOnAdd();
    });
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,插入后 OrderNumber 都保留为 0。有没有办法让内存数据库做到这一点,或者这是一个已知的限制?(谷歌搜索发现了有关重新播种关键值的问题,但不是这个特定问题)

.net in-memory-database ef-core-2.2

1
推荐指数
1
解决办法
1241
查看次数