1

ログイン用にこのストアドプロシージャがあります

ALTER PROCEDURE usp_Login

    (
    @username varchar(50),
    @password varchar(50)
    )   
AS
BEGIN
DECLARE @loginflag VARCHAR(1)   
IF EXISTS (SELECT dbo.tbl_Login.Id FROM dbo.tbl_Login WHERE (dbo.tbl_Login.LoginId = @username))
    BEGIN
IF ((SELECT COUNT(dbo.tbl_Login.Id) FROM dbo.tbl_Login WHERE (dbo.tbl_Login.LoginId = @username) AND (dbo.tbl_Login.Loginpassword= @password))> 0)
        BEGIN
        WITH LoggedInUser AS 
        (
SELECT  L.LoginId,L.LoginRole,L.LoginPassword,L.UserId,S.FatherName,S.Name,S.RollNo,S.Marks,S.Dob,                    S.Address,S.PhoneNumber,S.CityId,S.EmailAddress,S.Gender,S.Password,             S.SiteUrl,S.StuAvtar,S.StuCv FROM dbo.tbl_Login AS L INNER JOIN dbo.tbl_Student AS S ON L.UserId = S.Id  
                       WHERE L.LoginPassword=@password AND L.LoginId=@username
        )
        SELECT *FROM LoggedInUser

        END
        ELSE        
            SELECT -98 AS Error --User Password Wrong   
    END 
    ELSE 
        SELECT -99  AS Error --USER NOT EXISTS
END

そして、結果を返すEntity Frameworkで使用したいと思います。どうすればいいですか?私を助けてください...

4

3 に答える 3

0

EntityFrameworkでストアドプロシージャを使用する方法に関するリンクは次のとおりです。EntityFrameworkでのストアドプロシージャ

于 2012-12-15T10:31:11.037 に答える
0

SQLでストアドプロシージャを記述してエンティティを更新し、それを関数に変換してプログラムで関数として使用し、エンティティモデルをdbクリックして開いているページ(EntityModel)で右側のページをdbクリックしますStoredproceduresEntity を呼び出したフォルダーを開いて、StoredProcedures を右クリックし、オプション AddFunction... を選択してから、出力の種類を選択します

于 2012-12-16T06:22:47.547 に答える
0

Code First を使用する場合、ストアド プロシージャの直接マッピング サポートはありません。

db.Database.SqlCommand メソッドを使用して、Add メソッドの代わりにプロシージャを呼び出すだけです。

これを試してください(これはサンプルです):

ニュースクラス:

public class News
{
   public int NewsId { get; set; }
   public string Title { get; set; }
   public string Body { get; set; }
   public bool Active { get; set; }
}

接続文字列

<connectionStrings>
   <add
      name="MyDatabaseContext"
      connectionString="Data Source=MyServer;Initial Catalog=MyDatabase;Integrated Security=True;"
      providerName="System.Data.SqlClient" />
</connectionStrings>

DbContext

public class MyDatabaseContext : DbContext
{
   public DbSet<News> Newses { get; set; }
}

ストアド プロシージャ

ALTER PROCEDURE [dbo].[News_Insert]
(
   @Title VARCHAR(100),
   @Body VARCHAR(MAX),
   @NewsStatusId INT
)

AS

BEGIN

   INSERT INTO
      News
      (
         Title,
         Body,
         NewsStatusId
      )
      VALUES
      (
         @Title,
         @Body,
         @NewsStatusId
      );

  SELECT SCOPE_IDENTITY();

END

上記のモデルでSPを使用する方法(コードファースト)

db.Database.SqlCommand("dbo.News_Insert @Title, @Body, @NewsStatusId",
  new SqlParameter("Title", news.Title),
  new SqlParameter("Body", news.Body),
  new SqlParameter("NewsStatusId", news.NewStatus.Id));

詳細については、ここにいくつかの便利なリンクがあります

ニコラオスのブログ投稿

関係を超えたブログ投稿

于 2012-12-15T10:19:06.530 に答える