简单数据随机排序



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);

希望能有所帮助。

相关内容

  • 没有找到相关文章

最新更新