1

我有登錄如何在Entity Framework 4中使用我的存儲過程?

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 [email protected] AND [email protected] 
     ) 
     SELECT *FROM LoggedInUser 

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

這個存儲過程,我願與返回結果與實體框架使用它。我該怎麼做?請使用代碼首先

時幫我...

回答

0

沒有爲存儲過程沒有直接映射支持你可以簡單地通過使用db.Database打電話給你的程序,而不是Add方法。 SqlCommand方法。

試試這個(這是一個示例):

新聞類:

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)); 

這裏有更多的細節

一些有用的鏈接

Nikolaos Blog Post

Beyondrelational Blog Post

+0

不,我想使用entityframework sampath –

+0

@KumarAryan我已更新內容請檢查。 – Sampath

+0

我想使用它與實體框架......... –

0

您可以編寫存儲在SQL過程和你的實體更新,然後轉換它的功能和使用它在你的程序中的功能,數據庫點擊實體模型和打開的頁面(EntityModel),然後我右側頁面數據庫單擊文件夾,調用StoredproceduresEntity然後打開然後右鍵單擊一個StoredProcedures並選擇選項AddFunction ..然後選擇輸出類型:http://msdn.microsoft.com/en-us/data/gg699321.aspx

+0

我想做登錄不crud操作:) –

相關問題