是否可以使用EF执行存储过程,使用内连接和左外连接从两个或多个表中选择数据库中的记录.
我的观点是避免在EF或LINQ中进行连接的方法,我有很多问题.
因此,如果我创建该过程,我可以使用来自用户输入的参数调用它,可以将结果分配给.ToList()方法,然后将结果添加到asp:repeater .DataSource.
我知道这可能是一个奇怪的问题,但我想这样做有很多原因
首先,使用EF因为我感觉更舒服.
第二,摆脱在EF中使用连接.
第三,我在某处读到,当用于经常调用查询时,使用存储过程将提高查询性能.
如果有人可以帮助我用一个例子回答这些问题,我将不胜感激.
解决方法
您可以从Entity Framework数据上下文中调用sqlQuery.
context.Database.sqlQuery<YourType>("exec usp_StoredProcedure").ToList()
作为示例,您需要一个类来映射查询结果:
public class YourType { public string Property1 { get; set; } public string Property2 { get; set; } }
您还可以为查询指定参数,如下所示:
sqlParameter parameter1 = new sqlParameter("@Parameter1","Value"); context.Database.sqlQuery<YourType>("exec usp_StoredProcedure @Parameter1",parameter1).ToList()