public IEnumerable<Products_Products> getprod()
{
var db = new Model.atengturonDBEntities();
IEnumerable<Products_Products> x = new List<Products_Products>();
var test = (from name in db.Products_Products select
name.ProductName).ToList();
x = test;
return x;
}
なぜこのエラーが発生するのですか?また、すべての「IEnumerable」を「List」に変更しようとしました。助けてください。ありがとう:)
タイプ「System.Collections.Generic.List」を「System.Collections.Generic.IEnumerable」に暗黙的に変換することはできません。明示的な変換が存在します(キャストがありませんか?)
エラーメッセージは非常に明確です。 _name.ProductName
_を選択しているため、LINQクエリはstring
のコレクションを返しますが、メソッドは_Products_Products
_のコレクションを返すように宣言されています。
LINQクエリを変更して、ProductName
だけでなく製品自体も返すようにします。
_IEnumerable<Products_Products> x = new List<Products_Products>();
var test = (from name in db.Products_Products select
name).ToList();
_
(db.Products_Products.ToList()
だけに置き換えることもできます。
または、メソッドを変更して_IEnumerable<string>
_を返します
_public IEnumerable<string> getprod()
_
Lambada式は、各製品からProductNameを取得し、それを文字列のコレクションとして収集します。次のように変更することをお勧めします。
return (from name in db.Products_Products select
name).ToList();
.FirstOrDefault
またはFirst
を使用できます。常に問題を解決します。