1

Simple.Data を使用しており、単一の列を選択して、それを文字列値のリストにキャストできるかどうかを知りたいです。たとえば、次のクエリを使用すると、エラーが発生します。

タイプ 'Simple.Data.SimpleRecord' を 'string' に暗黙的に変換することはできません

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 クラスで機能します。詳細については、こちらをご覧ください

スカラー値またはスカラー値のリストとして返すフィールドを 1 つだけ返す場合は、代わりに 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 に答える