我正在使用Simple.Data并想知道我是否可以选择单个列然后将其转换为字符串值列表。例如,使用下面的查询,我得到错误:
无法将类型'Simple.Data.SimpleRecord'隐式转换为'string'
var result = _database.ParentRegionList.All()
.Select(_database.ParentRegionList.RegionName)
.Where(_database.ParentRegionList.RegionName.Like(startsWith + "%"))
.Distinct()
.ToList<string>();
但是,如果我创建一个类LocationAutoComplete,它具有string类型的单个公共属性“RegionName”,那么转换就可以了。
var result = _database.ParentRegionList.All()
.Select(_database.ParentRegionList.RegionName)
.Where(_database.ParentRegionList.RegionName.Like(startsWith + "%"))
.Distinct()
.ToList<LocationAutoComplete>();
答案 0 :(得分:3)
ToList&lt; T&gt; Simple.Data方法希望您将SimpleRecord的内容强制转换为对象,这就是它与LocationAutoComplete类一起使用的原因。完整的详细信息可以在here找到。
如果您只返回一个希望作为标量值或标量值列表返回的字段,请使用ToScalar&lt; T&gt;。或ToScalarList&lt; T&gt;方法而不是。完整的详细信息可以在here
找到答案 1 :(得分:0)
如果RegionName是varchar,那么您只需要
var result = _database.ParentRegionList.All()
.Where(_database.ParentRegionList.RegionName.Like(startsWith + "%"))
.Select(_database.ParentRegionList.RegionName)
.Distinct()
.ToList();
您不需要<string>