- SQL Server, ( , ..), , .
Linq-to-SQL .
, , , :
CREATE PROCEDURE dbo.GetUserPoints(@UserName VARCHAR(50))
AS BEGIN
DECLARE @UserID UNIQUEIDENTIIFIER
SELECT @UserID = ID FROM dbo.ASPNET_Users WHERE UserName = @UserName
DECLARE @PostPoints INT
DECLARE @EventPoints INT
DECLARE @CommentPoints INT
SELECT @PostPoints = SUM(ISNULL(Upvotes, 0))
FROM dbo.Posts WHERE UserID = @UserID
SELECT @EventPoints = SUM(ISNULL(Upvotes, 0))
FROM dbo.Events WHERE UserID = @UserID
SELECT @CommentPoints = SUM(ISNULL(Upvotes, 0)) - SUM(ISNULL(Downvotes, 0))
FROM dbo.Comments WHERE UserID = @UserID
RETURN @PostPoints + @EventPoints + (@CommentPoints / 5)
END
Linq-to-SQL DataContext, proc , :
public int GetUserPoints(string userName)
{
return db.GetUserPoints(userName);
}