0

SimpleData の問題

会社と製品の 2 つのテーブルがあります。特定の基準を満たすすべての企業の製品を照会して取得する場合、返されるたびに結果をランダムに並べ替えたいと考えています。それ、どうやったら出来るの?

また、

(これを手伝っていただけるなら)会社ごとに最大数の製品を用意していただければ幸いです。そう

Database.Default.Products.All().Where(Database.Default.Products.Companies.Status=3)

すべての商品を返品しますが、最大 3 つまたは各商品のみが必要です。

4

1 に答える 1

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.Data から呼び出すことができます。

var products = Database.Default.RandomProductSearch(3,10);

それが役立つことを願っています。

于 2012-07-10T16:45:42.507 に答える