Hi Guys,
I have alluded to this issue in my other question, but i think it's worthwhile breaking it out into its own question, as it's not really dependant on the other scenarios i mentioned.
Anyways - onto the Q, don't know if this is possible. Looking for a solution/workaround.
I have a Class Library, with nothing but POCO's:
MyCompany.MyProject.Domain.POCO
This assembly has a POCO like this:
public class Post
{
public int PostId { get; set; }
public int Name { get; set; }
...
}
Now, i have another Class Library, which is my DAL/Repository, and uses Entity Framework 4.0 for the persistence:
MyCompany.MyProject.Repositories
This assembly has a reference to the POCO project, as it needs to be perform CRUD operations on the POCO's (grab DB objects, project into POCO's, return, as well as modify POCO's).
Now, i also have a Web Application, which has a reference to both the POCO and Repository assembly.
If i do this:
somePOCO.PostId = 10;
I get a SQLException, as PostId is an IDENTITY field in the database, and hence should not be explicity set.
Is there a way i can hide the setter for these special properties, so that only the repository has access to the setter?
I can't think of a way to do it with regular accessibility modifiers (as none of them suit the scenario), can you guys think of a workaround?