.NET Core 3.1 - EntityFrameworkCore - DBContext.Query 已过时

.NET Core 3.1 - EntityFrameworkCore - DBContext.Query obsolete

我发现许多示例和教程中的函数已过时,但很难找到它们的替代品

这里有一个例子,查询函数已经过时了,但我找不到在它的地方使用什么

SqlParameter usernameParam = new SqlParameter("@username", usernameVal ?? (object)DBNull.Value);
SqlParameter passwordParam = new SqlParameter("@password", passwordVal ?? (object)DBNull.Value);

string sqlQuery = "EXEC [dbo].[LoginByUsernamePassword] @username, @password";

lst = await context.Query<Authenticate>().FromSql(sqlQuery, usernameParam,passwordParam).ToListAsync();    

在这种情况下,此行不会编译:

lst = await context.Query<Authenticate>().FromSql(sqlQuery, usernameParam, passwordParam).ToListAsync();

context beeing a DbContext instance

有人知道如何解决这个问题吗?

我已经查看了微软文档,它说它已经过时但没有指出它的替代品

Query<T>() 的替换为 Set<T>()

所以按照你的例子,它会是这样的:

lst = await context.Set<Authenticate>().FromSqlRaw(sqlQuery, usernameParam,passwordParam).ToListAsync();