次のコードフラグメントがあります
IQueryable<RssItem> rssItems = from prodotti prodotto in tuttiProdotti
join marca in tutteMarche on prodotto.marca equals marca.id
where prodotto.eliminato == 0
orderby prodotto.id ascending
select new GoogleShoppingRssItem
{
Author = AUTHOR,
//Availability = prodotto.disponibilita > 0 ? AvailabilityType.instock : AvailabilityType.outofstock,
//Availability = AvailabilityType.instock,
Title = prodotto.titolo,
};
可用性行の最初のバージョンのコメントが外されたとき、それはタイプではないArgumentException
と言ってを受け取りました。プロパティと関係があると思いました(ただし、DBには値がありません)。製品の数量をチェックしない 2 番目のバージョンは、同じ例外をスローします。value
Edm.Int32
prodotto.disponibilita
int?
null
可用性設定の 2 番目のバージョンにコメントを付けて初めて、コードが最終的に機能し、式が評価されました。
列挙型は次のように定義されます。
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.3038")]
[System.SerializableAttribute()]
[XmlType(Namespace="http://base.google.com/ns/1.0")]
[XmlRoot("availability", Namespace="http://base.google.com/ns/1.0", IsNullable=false)]
public enum AvailabilityType {
/// <remarks/>
[XmlEnum("in stock")]
instock,
/// <remarks/>
[XmlEnum("available for order")]
availablefororder,
/// <remarks/>
[XmlEnum("out of stock")]
outofstock,
/// <remarks/>
preorder,
}
enum
LINQ select ステートメントでのプロパティの設定について知っておくべきことはありますか?