ASP.NET MVC Architecture


1
Дали ще бъде качено демото от лекцията за ASP.NET MVC Architecture



Отговори



6

от Nikolay.IT (39117 точки)


2

Ники, има проблем при наследяването на BaseModel{Tkey} от ApplicationUser, заради типа на ID на ApplicationUser, който е string, а не int. Със Симо направихме доста сериозно рефакториране, като отстранихме 

public interface IDbRepository<T> : IDbRepository<T, int> where T : IBaseModel<int>

{

}

И оставихме другият интерфейс в следния вид:

public interface IDbRepository<T, in TKey> where T : class, IBaseModel<TKey> { IQueryable<T> All(); IQueryable<T> AllWithDeleted(); T GetById(TKey id); void Add(T entity); void Delete(T entity); void HardDelete(T entity); void Save(); }

Това наложи доста други рефакторирания. В резултат в контролер подаваме нещо такова:

public AuctionController(IDbRepository<Auction, int> auctions, IDbRepository<Item, int> items, IDbRepository<User, string> users) { this.dataAuction = auctions; this.dataItem = items; this.dataUser = users; }

Мен много ме дразни това, че винаги трябва да указваме типа на Id-то. Как ти се вижда това решение?

сорс: GitHub


от MarinMarinov (912 точки)

0

Здравей, пусни това и в issues в проекта да го имам като код и като остане време ще му хвърля едно око.

По принцип трябва да има вариант за IDbRepository<User, string> users и съкратено IDbRepository<Item> items. Т.е. когато е int да не се оказва изрично, а само когато е различно от int.


от Nikolay.IT (39117 точки)


-1
Ники, браво за темплейта. Доста е як като идея. Инспирирани от него направихме една системка за темплейти, която надгражда идеята и всичко се случва като уеб приложение.
http://asptemplatestack.com/Templates/GetAll

от boncho.vylkov (1923 точки)