2011-09-22 58 views
1

这是一个完全是意见问题的问题。但这也可能是一个关于我身边愚蠢的问题。它的工作方式都很好。但我想知道人们的想法。实体框架中的代码清理

public IQueryable<User> Users { 
     get { 
      return context.Users; 
     } 
    } 

我们去那里...那是被返回的所有用户提供的EntityFramework方面的功能,它在我的仓库。 context.Users是一个IObjectSet btw。

public User GetUserById(int userId) { 
     return context.Users.FirstOrDefault(u => u.UserId == userId); 
    } 

这是我的存储库中另一个函数的示例。正如我在这里使用context.Users。 我可能也会这样写。

public User GetUserById(int userId) { 
     return Users.FirstOrDefault(u => u.UserId == userId); 
    } 

我想使用最后一个导致代码看起来更干净。但是这会以任何方式影响演出?!这可能是一个愚蠢的问题......但是,我希望能与更大的项目合作,每个小细节都可以计算在内。 (我知道实体框架可能是错误的方式去但它不是我的呼叫)

+0

“prestanda”=“表演”? (http://www.woxikon.de/swe/prestanda.php) – Peter

+0

是的。 “prestanda”=“表演”? (对不起英文不好) – Wondermoose

回答

1

看来你似乎正在描述消费代码和实体框架之间的间接/抽象层。我认为这是一件好事。我实际上修改了T4 POCO模板以自动生成#1中的内容,并生成一个只返回IQueryables的接口。

许多现代的ORM现在都提供LINQ支持......并且很高兴知道其余的代码不必知道它与之交谈的是什么ORM ......如果您决定离开实体框架在某一点。

要回答你关于性能的问题:不,我不认为这会对性能产生负面影响。编译后的代码中会生成一些额外的CIL语句,但这是关于它的。

+0

感谢您的评论,没有想到这件事,这本身就是一件好事。 – Wondermoose