これはLINQ to SQLが意味するものではありません。まず、店舗で商品を自動的に番号表示するビューが必要です。
CREATE VIEW ArticleStoreView AS
SELECT a.articleId ,
a.articleName ,
a.publicationDate,
asm.storeId ,
s.storeName ,
s.maxNumOfArticles,
ROW_NUMBER() OVER (PARTITION BY asm.storeId ORDER BY publicationDate DESC ) AS [Order]
FROM dbo.Article a INNER JOIN dbo.ArticleStoreMap asm ON asm.articleId = a.articleId
INNER JOIN dbo.Store s ON s.storeId = asm.storeId
これにより、ご注文が常に正しいことが保証されます。
だけで、関連する記事を取得するには、このクエリを書くことができます:
SELECT asv.articleId ,
asv.articleName ,
asv.publicationDate ,
asv.storeId ,
asv.storeName ,
asv.maxNumOfArticles ,
asv.[Order]
FROM dbo.ArticleStoreView asv
WHERE asv.[Order] <= asv.maxNumOfArticles
ORDER BY asv.publicationDate DESC
古い記事/店舗マップを削除するには:ある古い記事を削除するには
DELETE dbo.ArticleStoreMap
FROM dbo.ArticleStoreMap asm
INNER JOIN dbo.ArticleStoreView asv ON asv.articleId = asm.articleId
AND asv.storeId = asm.storeId
WHERE asv.[Order] > asv.maxNumOfArticles
をマップされていません
DELETE dbo.Article
FROM dbo.Article a WHERE NOT EXISTS (SELECT * FROM dbo.ArticleStoreMap asm WHERE asm.articleId = a.articleId)
注文を変更するには?トップ5を読むようにしてください。降順またはID –
で降順と何を試しましたか?コードを表示できますか? –
まず、デザイン上の問題のようです。新しいレコードが挿入されたときに、外部キーを持つレコードが削除されるのはなぜですか? 2番目:プライマリキーを増分で使用する番号ですか?数字は 'articleId'に保存されていますか? articleId descで注文されたレコードを取得することをお勧めします。 –