Итак, я читал об Entity Framework и, основываясь на своем сценарии гибкой разработки, я решил использовать объекты POCO.
Но теперь у меня возникли дополнительные проблемы, с которыми я не знаю, как с этим справиться.
Я работаю со службами RIA и Silverlight, поэтому, когда я собираюсь сохранить объект на стороне сервера, я должен прикрепить объект к ObjectContext
. Дело в том, что я должен затем изменить ObjectState
на Добавленный или Измененный.
Так что мой вопрос в том, каков наилучший подход, чтобы действительно знать, в какое состояние его менять. В книге Джулии Лерман я видел, что она использует атрибут State
в своих объектах POCO, и она заботится об управлении этим состоянием на стороне клиента перед отправкой объекта на сервер. Это состояние затем используется для изменения реального EntitySate после присоединения.
Я также видел другие примеры, в которых реализация Insert проверяет ключ сущности (объекта), чтобы узнать, является ли он новым или нет. Например, если ProjectId
в моем объекте Project равен 0 (ноль), я знаю, что это должен быть новый объект.
Если честно, мне не нравится ни один из этих подходов, потому что в обоих случаях мои разработчики должны проделать дополнительную работу, чтобы реально сохранить объект.
Мне бы хотелось знать плюсы и минусы обоих решений и, надеюсь, новое (лучшее) решение, которое я до сих пор не вижу.