我只是完成使用Ninject依賴注入到我的asp.net網站API項目實施庫模式&工作單位。的ASP.NET Web API庫模式服務層(業務邏輯)
使用實體框架作爲我的ORM。
我有以下soluction結構(項目):
- Web應用程序(asp.net網頁API)
- 數據(的DbContext,資料庫)
- 接口(IRepository等)
- 模型(來自DB的POCO類)
例如我的PersonRepository(數據項目):
public class PersonsRepository : EFRepository<Person>, IPersonsRepository
{
public PersonsRepository(DbContext context) : base(context) { }
public IQueryable<Person> GetByAge(int age)
{
return DbSet.FirstOrDefault(ps => ps.age == age);
}
public void Delete(int personId, int age)
{
// Here I want to validate some stuff before deleting
// Business Rules need to be here!!
var attendance = new Attendance {PersonId = personId, Age = age};
Delete(attendance);
}
}
所以我的問題是,如果它的正確實施我的存儲庫方法中的所有業務邏輯?以及在需要的情況下返回消息或驗證的最佳方式是什麼。
謝謝,感謝任何幫助!
其實我參考了John Papa Code Camper項目:https:// github。com/johnpapa/CodeCamper 在我有的示例代碼中,該存儲庫模式是自定義存儲庫的自定義實現...因爲GetByAge方法只會被PersonRepo使用 – VAAA
因此,您告訴我的是業務規則或邏輯(檢查某些字段是否正確,如果條件爲真或模型項目中的哪些內容(我擁有POCO類)? – VAAA
業務邏輯應該停留在業務邏輯層,而不是數據訪問 – MikeSW