我是EF新手并首先使用EF代码。刚刚得到一个链接https://code.msdn.microsoft.com/How-to-retrieve-output-e85526ba,它显示了如何首先使用EF db的读输出类型参数。所以任何人都告诉我如何首先通过EF代码从存储过程中检索输出参数?
如果可能的话,请给我一些小样本代码或将我重定向到相关文章。
感谢
var outParam = new SqlParameter();
outParam.ParameterName = "TotalRows";
outParam.SqlDbType = SqlDbType.Int;
outParam.ParameterDirection = ParameterDirection.Output;
var data = dbContext.Database.SqlQuery<MyType>("sp_search @SearchTerm, @MaxRows, @TotalRows OUT",
new SqlParameter("SearchTerm", searchTerm),
new SqlParameter("MaxRows", maxRows),
outParam);
var result = data.ToList();
totalRows = (int)outParam.Value;
答案 0 :(得分:6)
要检索存储过程调用的数据,可以使用以下
using(var db = new YourConext())
{
var details = db.Database.SqlQuery<YourType>("exec YourProc @p",
new SqlParameter("@p", YourValue));
}
YourType :可能是int或string或long,甚至是ComplexType
@p :如果存储过程有参数,您可以根据需要从参数中定义
如果您需要有关SqlQuery的更多信息,可以查看以下内容
答案 1 :(得分:0)
这样我们也可以在不使用using (var context = new BloggingContext())
{
var blogId = 1;
var blogs = context.Blogs.SqlQuery("dbo.GetBlogById @p0", blogId).Single();
}
命令的情况下调用存储过程。
// Owin Middleware3 - Cookie Authentication Middleware
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
LoginPath = new PathString("/Account/Login"),
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
ExpireTimeSpan = TimeSpan.FromMinutes(timeout),
SlidingExpiration = true
}
});
您还可以使用以下语法将参数传递给存储过程:
.div_2 {
height: 200px;
}
.placeholder {
height: 200px;
width: 100%;
}