我有登录的存储过程
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一起使用并返回结果。我该怎么做?请帮帮我......
答案 0 :(得分:0)
使用Code First时存储过程没有直接映射支持
您只需使用 db.Database.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));
以下是一些有用的链接,了解更多详情
答案 1 :(得分:0)
这是一个关于如何使用Entity Framework Stored Procedures in the Entity Framework
使用存储过程的链接答案 2 :(得分:0)
你可以在sql和你的实体更新中编写存储过程,然后将其转换为函数并使用它,例如程序中的函数,db-单击实体模型和打开页面(EntityModel)然后我右侧页面db - 单击调用StoredproceduresEntity并打开的文件夹,然后右键单击StoredProcedures并选择AddFunction选项...然后选择输出类型转到:http://msdn.microsoft.com/en-us/data/gg699321.aspx