我正在处理我的第一个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) 我们有一个实体以基于自动递增的 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。有没有办法让内存数据库做到这一点,或者这是一个已知的限制?(谷歌搜索发现了有关重新播种关键值的问题,但不是这个特定问题)