0
设计查询帮助这是我的查询:需要在ELinq
Dim vendorId = 1, categoryId = 1
Dim styles = From style In My.Context.Styles.Include("Vendor") _
Where style.Vendor.VendorId = vendorId _
AndAlso (From si In style.StyleItems _
Where si.Item.Group.Category.CategoryId = _
categoryId).Count > 0 _
Distinct
我有我可以提高性能辩论,因为上面的查询是(纠正我,如果我错了)的感觉进行2轮 - 传送到服务器;计数1次,然后执行。
我想将这个Count事件发送到数据库,所以它应该只是一次往返服务器。
即使它不是确切的事情,其实这正是我需要的:
SELECT DISTINCT Style.*
FROM Style INNER JOIN
Vendor ON Style.VendorId = Vendor.VendorId INNER JOIN
StyleItem ON Style.StyleId = StyleItem.StyleId INNER JOIN
Item ON StyleItem.ItemId = Item.ItemId INNER JOIN
[Group] ON Item.GroupId = [Group].GroupId INNER JOIN
Category ON [Group].CategoryId = Category.CategoryId
WHERE (Style.VendorId = @vendorid) AND (Category.CategoryId = @CategoryId)
我希望我可以用这个存储过程(即功能导入等),但我需要Include("Vendor")
,这限制了我与Linq一起完成。
任何类型的建议将非常欢迎!
我不确定它会撞击两次,如果它可以是一个“单个”SQL查询,那么它可能应该翻译 - 但有趣的问题。你应该可以看看它发送的SQL(如果我知道离手的话我会给出答案!)。 – Murph 2009-11-29 19:02:57