Я упоминал об этой проблеме в моем другом вопросе , но я думаю, что стоит разбить его на свой собственный вопрос, поскольку он на самом деле не зависит от других сценариев, которые я упомянул.
В любом случае - на Q, не знаю, возможно ли это.В поисках решения / обходного пути.
У меня есть библиотека классов, только с POCO:
MyCompany.MyProject.Domain.POCO
Эта сборка имеет POCO, подобную этой:
public class Post
{
public int PostId { get; set; }
public int Name { get; set; }
...
}
Теперь у меня есть другая библиотека классов, которая является моим DAL / Repository и использует Entity Framework 4.0 для персистентности:
MyCompany.MyProject.Repositories
Эта сборка имеет ссылку на проект POCO, так как она должна выполнять CRUDоперации над POCO (захват объектов БД, проецирование в POCO, возврат, а также изменение POCO).
Теперь у меня также есть веб-приложение , которое имеет ссылку как наСборка POCO и репозитория.
Если я сделаю это:
somePOCO.PostId = 10;
, я получу SQLException, так как PostId является полем IDENTITY в базе данных, и, следовательно, не долженбыть установленным.
Есть ли способ, которым я могу скрыть установщик для этих специальных свойств, чтобы только репозиторий имел доступ к установщику?
Я могу 'не могу придумать способ сделать это с помощью обычных модификаторов доступности(поскольку ни один из них не устраивает сценарий), вы, ребята, можете придумать обходной путь?