2011-04-22 47 views
0

我想知道有時我應該如何製作我的回購方法。我應該製作一個新的回購方法嗎?

我有這個

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

你應該讓你的數據庫做盡可能多的過濾越好,因爲這是它的擅長。當需要調整性能時,這會給你最大的靈活性。棘手的部分是過濾和業務邏輯之間的細線。

+1

你想不明白這個問題。 – jason 2011-04-22 17:44:01

+0

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

+0

我把這個問題看成是:在回購層或服務層過濾更好嗎?我的回答是回購。 – 2011-04-22 20:58:11

相關問題