Probably a stupid question:
Domain entities should be completely unaware of Persistence layer and as such should communicate with it only through Repositories, thus Domain entities should be Persistence Ignorant.
Common way of completely decoupling Domain layer from Persistence layer is by using Repositories, where Repository interfaces live within the Domain assembly, while the Respository implementations exist within the Persistence layer assembly PLA.
But I'm a bit confused about the terminology. Namely,I know it is a bad idea to put Repository interface inside PLA for at least two reasons, first reason being that this forces Domain assembly to hold a reference to PLA, and also now Repository interface is defined in terms of lower level components ( ie now Persistence layer dictates the definition of a Repository interface ). But if for whatever reason we did put Repository interface inside PLA,then:
a) could we still argue that Domain layer ( ie its entities ) is Persistent Ignorant? I'd assume yes, since domain entities are still completely unaware of Persistence layer?!
b) would in such situation the correct expression be that "Domain assembly now depends on PLA" or perhaps that "Domain layer now depends on Persistence layer" or...?
Thank you