0

VisualStudio 2008 では、linq クエリで次のエラーが発生します。

ソースタイプ 'System.Linq.IQueryable' をターゲットタイプ 'string' に変換できません

これはクエリです:

  var query = (from c in model.ITEMLIST
               select new ItemList
                        {
                          LineNo = c.LINE_NO,
                          SupplierName = from s in model.VENDOR where s.ID == c.ID_VENDOR select s.NAME
                                                     });

LinqPad で同じクエリを実行すると、期待どおりの結果が返されます。

これにはLinqToEntityを使用しています。LinqToSql を使用している別のプロジェクトでは、正常に実行される同様のクエリがあります。

4

1 に答える 1

4

あなたの問題はこの行です

SupplierName = from s in model.VENDOR where s.ID == c.ID_VENDOR select s.NAME

SupplierNameはですstringが、右側はクエリです。代わりに、クエリで唯一の結果を割り当ててみてください。

SupplierName = 
    (from s in model.VENDOR where s.ID == c.ID_VENDOR select s.NAME).Single()

または、私が好むスタイルで

SupplierName = model.VENDOR.Single(v => v.ID == c.ID_VENDOR).NAME;
于 2012-11-22T10:47:48.757 に答える