作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图了解 EF 5 中引入的新 FromExpression
扩展方法的用途是什么,因为已经有几种不同的方法可以查询实体
使用FromExpression
:
var q = DBContext.Set<MyUser>()
.Include(x => x.UserRoles)
.ThenInclude(y => y.Role)
.Where(x => x.LoginName == loginName);
return await DBContext.FromExpression<MyUser>(() => q).SingleOrDefaultAsync();
不使用 FromExpression
:
我使用单行的旧语法查询
var user = DBContext.Set<MyUser>()
.Include(x => x.UserRoles)
.ThenInclude(y => y.Role)
.Where(x => x.LoginName == loginName)
.SingleOrDefaultAsync();
或者我也可以使用扩展方法。
public static IQueryable<MyUser> FindUser(this IQueryable<MyUser> source, string loginName)
{
return source
.Include(x => x.UserRoles).ThenInclude(y => y.Role)
.Where(x => x.LoginName == loginName)
}
var user = DBContext.Set<MyUser>()
.FindUser(loginName)
.SingleOrDefaultAsync();
最佳答案
所有这些场景都不需要 FromExpression
(尽管它在某种程度上适用于它们)。
该方法的主要(可能也是唯一)用途是用于 Mapping a queryable function to a table-valued function正如文档链接中所解释的那样,我不会复制/粘贴那里写的所有内容。该方法对于那种类型的映射是必不可少的,因为它不支持使用 HasTranslation
的标量函数映射。
不久,将“旧语法”用于常规 LINQ to entities 查询场景,FromExpression
仅用于公开 TVF 映射的可查询函数。
关于.net-5 - EF 5 中的 FromExpression 有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70745191/
我试图了解 EF 5 中引入的新 FromExpression 扩展方法的用途是什么,因为已经有几种不同的方法可以查询实体 使用FromExpression: var q = DBContext.Se
我是一名优秀的程序员,十分优秀!