.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();
我发现许多示例和教程中的函数已过时,但很难找到它们的替代品
这里有一个例子,查询函数已经过时了,但我找不到在它的地方使用什么
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();