0

このストアド プロシージャは SQL Server で記述されています。

USE [AppMarketplace]
GO


SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[uspTerms] 
@ID int

AS
BEGIN
SET NOCOUNT ON;

if(exists(select * from AppmarketApp where ID= @ID)) -- checking whether user exists in main user table

BEGIN
 if(exists(select * from AppTerms where ID = @ID)) -- if exists in the main table then check in terms table for accepting condition

BEGIN
return 1; -- if user has accepeted terms and condition
End

else
Begin
return 0; --if user not accepetd terms and codition
end
end

begin 
return -1; --if user doesnt exists in AppmarketApp table
end
end

GO

ここで、MVC モデルでこれを呼び出す必要があります。EF データベースの最初のアプローチを使用しています。私の最初の質問は

1) モデルまたはコントローラーで SP を呼び出す必要がありますか? コードで説明する方が良いでしょう。

2)また、このシナリオのコードを探しています。ユーザーが利用規約に同意したかどうかを確認するロジックを記述する必要があります。ユーザーが条件に同意しない場合は、利用規約のページを表示して強制的に同意する必要があります。正確にどのように機能するかは、最初に Appterms テーブルを確認します。このテーブルには、ID と Date という 2 つのフィールドがあります。ユーザーが条件を受け入れると、ユーザーが受け入れた日付が ID とともにこのテーブルに保存されます。したがって、userID の datefield が空の場合は、条件と条件を受け入れていないことを意味します。

4

2 に答える 2

1

1) モデルまたはコントローラーで SP を呼び出す必要がありますか? コードで説明する方が良いでしょう。

どちらも、ストアド プロシージャの呼び出しはビジネス ロジック層にある必要があります。コントローラーは実際にはプレゼンテーション層であり、データの取得とビューへの受け渡しのみを処理する必要があります。

モデルまたは ViewModel にビジネス ロジックが関連付けられていてはならず、実際には DTO である必要があります。

于 2013-08-16T11:42:15.733 に答える
0

asp.net Web サイトには詳細なチュートリアルがいくつかあります。データベース接続に使用するアプローチについて言及していないため、ADO.Net モデルを使用している場合は、次を読んでください。

http://www.asp.net/web-forms/tutorials/getting-started-with-ef/the-entity-framework-and-aspnet-getting-started-part-7

Code First を使用する場合は、SP を手動で呼び出す必要があります。

http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/advanced-entity-framework-scenarios-for-an-mvc-web-application

于 2013-08-16T11:57:54.133 に答える