【问题标题】:What should be the type parameter for List<T> and .Query<T> for joined table?连接表的 List<T> 和 .Query<T> 的类型参数应该是什么?
【发布时间】:2016-08-24 16:15:30
【问题描述】:

我对 Xamarin Forms 和 SQLite 非常陌生。我有以下方法从两个连接的表中返回一个列表。我的问题是我不知道List&lt;T&gt;.Query&lt;&gt; 应该能够获得CategoryPhrase 表的值的正确类型参数是什么。任何人都可以启发我吗?

public List<?> GetWordsByCategory(int category)
{
    lock (locker)
    {
        var words = databaseConnection
                    .Query<?>("Select Category.*, Phrase.* 
                               From Category 
                               Join Phrase on Category.Id = Phrase.CategoryId 
                               Where Category.Id = 1")
                    .ToList();
        return words;    
    }
}

我尝试过List&lt;Category&gt;,但同样List&lt;Phrase&gt;只会返回类别表的属性

【问题讨论】:

  • 您需要创建一个具有两个组合类属性的新类。

标签: sqlite xamarin.forms sqlite-net


【解决方案1】:

您可以返回dynamic 或创建一个新类。

但我建议您使用 SQLite.Net PCL,它是 SQL 的包装器,它使您能够使用 linq 和 lamda 而不是字符串查询来查询像 EF 这样的数据库。

您可以查看this 类似的问题,这应该对您有所帮助。

【讨论】:

  • 不是dynamic不允许在实际的iOS设备上使用吗?
  • 我用过它,从来没有遇到过任何问题。你有什么问题吗?
  • 我之前遇到过问题,根据this 链接,iOS 硬件专门设置为不允许动态代码。话虽如此,我认为它确实允许dynamics 的某些场景。因此,如果确实出现问题,也许这只是需要注意的事情。不幸的是,不久前我遇到了问题,所以我不记得情况或错误:|
  • iOS 存在动态代码生成问题,不使用动态数据类型。
  • 啊,这更有意义!谢谢。
猜你喜欢
  • 2022-12-12
  • 2021-01-25
  • 2023-01-09
  • 1970-01-01
  • 2019-11-21
  • 2011-07-03
  • 2018-05-09
  • 1970-01-01
  • 2010-11-12
相关资源
最近更新 更多