1
検索結果のセットを作成しました。利用可能な猫のフィルターをそのフィルター内に作成したいと考えています。しかし、私はこれをしようとするときに最も奇妙なエラーを取得します。linqで指定された結果のカテゴリーに属する商品の数をカウントするアドバイス
Unable to create a constant value of type 'NAMESPACE.Models.Products'. Only primitive types ('such as Int32, String, and Guid') are supported in this context.
これは私がしようとしているコードです:
var cats = (from p in ctx1.SubCategories
where myCats.Contains(p.subCategoryId) && p.enabled
select new
AvailableSubCats
{
CategoryName = p.subCategoryName,
Id = p.subCategoryId,
TotalItems = model.Count(x => x.subCategoryId == p.subCategoryId)
}).Distinct();
製品はtotalItemsのラインにモデルと呼ばれるオブジェクトです。同じエラーで
var cats = from c in ctx1.SubCategories
join p in model on c.subCategoryId equals p.subCategorySubId
group p by c.subCategoryName
into g
select new
AvailableSubCats
{
CategoryName = g.Key,
Id = 0,
TotalItems = g.Count()
};
、と私はカテゴリとそのIDの名前を取得する方法を知らないので、このようにいけない: 私もこれを試してみました。
大変助かりました。私は、エンティティフレームワーク4.1を使用しています
おかげ
PS、.NET 4とMVC 3、短期でのmysql
私は、LINQでこれを実行しようとしていますが、製品側ではすでに結果でありました
select c.*, (select count(productId) from Products where Products.subCategoryId = c.subCategoryId) as counter from SubCategories c
私は多かれ少なかれ、その値を持って、それを行うと私はmyCatsと呼ばれているものですが、私はそれが{「選択のネストのレベルが高すぎる」のエラーが発生していることを実行するカントカント}、可能であればシンプルにする必要があります – davethecoder
私はSQL Serverを使用して動作するようですが、MySQLを使用していますか? – NKeddie
はいmysqlサーバーは、mysqlの唯一のバグと思われる、私はその汚れているが、猫を介してループしているし、一時リストに入れて、asQueryableが唯一の方法だと思われるので、一時リストを返しました: – davethecoder