我使用EF6在當前web api項目中實現存儲庫模式。目前,我有以下功能(在CustomerRepository)返回一個客戶:通用資源庫中的SingleOrDefault?
public override Customer Get(int id, params Expression<Func<Customer , object>>[] include)
{
if (include.Any())
{
var set = include.Aggregate<Expression<Func<Customer , object>>, IQueryable<Customer >>
(dbset, (current, expression) => current.Include(expression));
return dbset.SingleOrDefault(x => x.Id == id)
}
return dbset.Find(id);
}
這工作得很好,但我想移動的上述方法在我的通用存儲庫。這裏的問題是SingleOrDefault,因爲Id不會被稱爲T.
有沒有辦法解決這個問題?我需要實現一個接口嗎?
作爲一個方面,我的所有實體的第一個屬性是'int Id'。
你可以把你的存儲庫代碼?我認爲你可以這樣做:(public class Repository where T:IKey),IKey是一個包含Id屬性的接口 –
Monah
2014-10-29 08:00:34