C# 无法在LINQ select期间设置枚举属性

C# 无法在LINQ select期间设置枚举属性,c#,mysql,linq,entity-framework-4,google-shopping-api,C#,Mysql,Linq,Entity Framework 4,Google Shopping Api,我有以下代码片段 IQueryable<RssItem> rssItems = from prodotti prodotto in tuttiProdotti join marca in tutteMarche on prodotto.marca equals marca.id where pro

我有以下代码片段

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,
                                               };
关于在LINQ select语句中设置
enum
属性,我应该知道些什么吗

关于在LINQ select语句中设置enum属性,我应该知道些什么吗

对。EF4不支持枚举,您不能在Linq to Entities查询中使用它们。如果在Linq to Objects查询中使用它们,则应该可以使用它们,因此请尝试以下操作:

IQueryable<RssItem> rssItems = (from prodotto in tuttiProdotti
                                join marca in tutteMarche on prodotto.marca equals marca.id
                                where prodotto.eliminato == 0
                                orderby prodotto.id ascending
                                select prodotto).ToList() // Now you switched to L2O
                               .Select(x => new GoogleShoppingRssItem
                                               {
                                                   Author = AUTHOR,
                                                   Availability = x.disponibilita > 0 ? AvailabilityType.instock : AvailabilityType.outofstock,
                                                   Title = x.titolo,
                                               });
IQueryable rssItems=(来自tuttiProdotti中的prodotto)
在prodotto的Tuttemarch中加入marca。marca等于marca.id
其中prodotto.eliminato==0
orderby prodotto.id递增
选择prodotto).ToList()//现在切换到L2O
.选择(x=>new GoogleShoppingRssItem
{
作者,
可用性=x.disponibilita>0?可用性类型.instock:AvailabilityType.outofstock,
Title=x.titolo,
});
关于在LINQ select语句中设置enum属性,我应该知道些什么吗

对。EF4不支持枚举,您不能在Linq to Entities查询中使用它们。如果在Linq to Objects查询中使用它们,则应该可以使用它们,因此请尝试以下操作:

IQueryable<RssItem> rssItems = (from prodotto in tuttiProdotti
                                join marca in tutteMarche on prodotto.marca equals marca.id
                                where prodotto.eliminato == 0
                                orderby prodotto.id ascending
                                select prodotto).ToList() // Now you switched to L2O
                               .Select(x => new GoogleShoppingRssItem
                                               {
                                                   Author = AUTHOR,
                                                   Availability = x.disponibilita > 0 ? AvailabilityType.instock : AvailabilityType.outofstock,
                                                   Title = x.titolo,
                                               });
IQueryable rssItems=(来自tuttiProdotti中的prodotto)
在prodotto的Tuttemarch中加入marca。marca等于marca.id
其中prodotto.eliminato==0
orderby prodotto.id递增
选择prodotto).ToList()//现在切换到L2O
.选择(x=>new GoogleShoppingRssItem
{
作者,
可用性=x.disponibilita>0?可用性类型.instock:AvailabilityType.outofstock,
Title=x.titolo,
});

您要设置的可用性成员是整数还是可用性类型枚举?另外,当使用prodotto.disponibilita时,在检查>0时,您需要使用prodotto.disponibilita.Value。可用性类型为AvailabilityTypeAvailabilityTypeAvailabilityTypeAvailabilityMember您要设置的是整数还是AvailabilityTypeEnum?此外,当使用prodotto.disponibilita时,在检查>0时,需要使用prodotto.disponibilita.Value。可用性为AvailabilityType类型