我应该制作一个新的回购方法吗?

问题描述:

我想知道有时我应该如何制作我的回购方法。我应该制作一个新的回购方法吗?

我有这个

public List<TableA> Get(Guid id) 
    { 
     return session.Query<TableA>().Where(x => x.Id== id).ToList(); 
    } 

现在我在服务层使用这几个地方,但在一个地方,我需要做一个选择。

我应该这样做

public List<string> GetNames(Guid id) 
    { 
     return session.Query<TableA>().Where(x => x.Id== id).Select(x => x.Name).ToList(); 
    } 

OR

//这是我的业务层

public void ServiceGet(Guid id) 
{ 
    myRepo.Get(id).Select(x => x.Name).ToList(); 
} 

我从来不知道我是否应该做一个新的方法或者回归一些常规结果,然后让服务层处理将其过滤掉。

+0

看起来你正在使用'ToList'早。为什么不返回'Where'的结果,然后你可以在方法被调用后附加'Select'或者做一个'ToList'。 – juharr 2011-04-22 18:21:15

+0

@ juharr - 我想这将节省不必做ToList再度但除此之外,我应该做这样的东西单独的方法,或只是发回一般性的结果,让他们做的选择和更多的过滤下来? – chobo2 2011-04-22 18:51:41

你应该让你的数据库做尽可能多的过滤越好,因为这是它的擅长。当需要调整性能时,这会给你最大的灵活性。棘手的部分是过滤和业务逻辑之间的细线。

+1

你想不明白这个问题。 – jason 2011-04-22 17:44:01

+0

@Jason:你说的是什么? – jgauffin 2011-04-22 17:57:22

+0

我把这个问题看成是:在回购层或服务层过滤更好吗?我的回答是回购。 – 2011-04-22 20:58:11