1

我正在使用 Simple.Data 并想知道是否可以选择单个列,然后将其转换为字符串值列表。例如使用下面的查询我得到错误:

无法将类型“Simple.Data.SimpleRecord”隐式转换为“字符串”

var result = _database.ParentRegionList.All()
            .Select(_database.ParentRegionList.RegionName)
            .Where(_database.ParentRegionList.RegionName.Like(startsWith + "%"))
            .Distinct()
            .ToList<string>();

但是,如果我创建一个具有字符串类型的单个公共属性“RegionName”的 LocationAutoComplete 类,则转换工作正常。

var result = _database.ParentRegionList.All()
            .Select(_database.ParentRegionList.RegionName)
            .Where(_database.ParentRegionList.RegionName.Like(startsWith + "%"))
            .Distinct()
            .ToList<LocationAutoComplete>();
4

2 回答 2

3

ToList<T> Simple.Data 方法希望您将 SimpleRecord 的内容转换为对象,这就是它与 LocationAutoComplete 类一起使用的原因。完整的细节可以在这里找到。

如果您只返回一个希望作为标量值或标量值列表返回的字段,请改用 ToScalar<T> 或 ToScalarList<T> 方法。完整的细节可以在这里找到

于 2013-01-21T14:15:59.837 回答
0

如果 RegionName 是 varchar,那么您只需要

var result = _database.ParentRegionList.All()                
            .Where(_database.ParentRegionList.RegionName.Like(startsWith + "%"))
            .Select(_database.ParentRegionList.RegionName)
            .Distinct()
            .ToList();

你不需要<string>

于 2013-01-21T00:34:35.043 回答