Entity framework 实体框架中的代码清理
这完全是一个意见问题。但这也可能是我这边关于愚蠢的问题。这两方面都很好。但我想知道人们是怎么想的Entity framework 实体框架中的代码清理,entity-framework,optimization,Entity Framework,Optimization,这完全是一个意见问题。但这也可能是我这边关于愚蠢的问题。这两方面都很好。但我想知道人们是怎么想的 public IQueryable<User> Users { get { return context.Users; } } 这是我的存储库中另一个函数的示例。在这里,我使用context.Users。 我不妨这样写 public User GetUserById(int userId) {
public IQueryable<User> Users {
get {
return context.Users;
}
}
这是我的存储库中另一个函数的示例。在这里,我使用context.Users。
我不妨这样写
public User GetUserById(int userId) {
return Users.FirstOrDefault(u => u.UserId == userId);
}
我想使用最后一个,因为代码看起来更干净。但这会对表演产生任何影响吗?!这可能是个愚蠢的问题。。。但我对处理每一个小细节都很重要的大项目还是有点陌生。(我知道实体框架可能是错误的选择,但这不是我的要求)您似乎在描述消费代码和实体框架之间的一层间接/抽象。我认为这是件好事。实际上,我修改了T4 POCO模板,以自动生成#1中的内容,并生成一个只返回IQueryables的接口 现在很多现代的ORM都提供LINQ支持……很高兴知道,代码的其余部分不必知道它在与什么ORM通信……以防您决定在某个时候离开实体框架
回答你关于绩效的问题:不,我认为这不会对绩效产生负面影响。编译后的代码中会生成一些额外的CIL语句,但仅此而已。您似乎在描述消费代码和实体框架之间的一层间接/抽象。我认为这是件好事。实际上,我修改了T4 POCO模板,以自动生成#1中的内容,并生成一个只返回IQueryables的接口 现在很多现代的ORM都提供LINQ支持……很高兴知道,代码的其余部分不必知道它在与什么ORM通信……以防您决定在某个时候离开实体框架
回答你关于绩效的问题:不,我认为这不会对绩效产生负面影响。编译后的代码中会生成一些额外的CIL语句,但仅此而已。“prestanda”=“performance”?是的。“普雷斯坦达”=“性能”?(为糟糕的英语“prestanda”=“performance”?)抱歉是的。“prestanda”=“performance”?(为糟糕的英语抱歉谢谢你的评论,我没想到那本身就是一件好事。谢谢你的评论,我没想到那件事。那本身就是一件好事。
public User GetUserById(int userId) {
return Users.FirstOrDefault(u => u.UserId == userId);
}