SimpleData问题
我有两张桌子:公司和产品。当我查询并获得所有符合特定标准的公司的产品时,我希望每次返回时都能随机排序结果。我该怎么做?
此外,
我希望(如果你能帮忙的话)每家公司都有最大数量的产品。所以
Database.Default.Products.All().Where(Database.Default.Products.Companies.Status=3)
我会退回所有产品,但我最多只想要3件或每件。
没有内置的支持,因为它在Simple.Data支持的不同SQL和NoSQL数据库中的实现方式太多样化了。
最好将搜索实现为一个存储过程,您可以从Simple.Data调用它,就好像它是数据库对象上的一个方法一样。
假设您使用的是SQL Server,那将是
CREATE PROCEDURE RandomProductSearch(@Status int, @Take int)
AS
BEGIN
SET NOCOUNT ON;
SELECT TOP (@Take) Products.*
FROM Products
JOIN Companies ON Products.CompanyId = Companies.CompanyId
WHERE Companies.Status = @Status
ORDER BY NEWID()
END
然后你可以从Simple调用。数据如下:
var products = Database.Default.RandomProductSearch(3,10);
希望能有所帮助。