2013-05-31 4 views
3

Я использую Entity Framework на сервере IIS. Моя служба имеет несколько методов, доступных для аутентифицированных пользователей.Каков наилучший способ предложить класс как услугу для сохранения данных?

Вот пример одного из методов:

public bool SaveTruckInventoryReading(TruckInventory truckInventory) 
{ 
    entities.AddToTruckInventories(truckInventory); 
    entities.SaveChanges(); 
    return true; 
} 

Я не ставил много информации в ней, так как я хотел задать конкретный вопрос. TruckInventory - объект объекта. Должен ли я создать класс, в который они входят, или что я делаю, чтобы позволить им передать объект в мой метод?

Если я создаю класс, я должен преобразовать его в объект Entity Object. Который мне, кажется, лишний код, который не нужен.

Обнаруживает объект моей сущности, как показано выше, плохой способ принять информацию или должен ли я передать их в общий класс?

+0

Я бы создал репозиторий, который потребляет TruckInventory и наследует от базового репозитория, который имеет такие методы, как «Добавить», «Удалить», «Редактировать» и т. Д. Таким образом ваша модель будет внутренней в репозитории и может быть интерфейсом из вашего репозитория. , –

+0

Is TruckInventory POCO? – Maess

+0

@Maess да, если я правильно понимаю POCO. Это очень простой объект на основе строк. – ErocM

ответ

1

На это нет «правильного» ответа.

Если TruckInventory является POCO, тогда нет никакого большого вреда в том, чтобы разоблачить его так, как вы. Тем не менее, есть много, которые утверждают, что это может нарушить ваше разделение проблем.

Если проблема разделения связана с проблемой, тогда я бы пошел с DTuckInventory DTO, который предоставляет только информацию, к которой вы хотите получить потребители. Если вы пройдете этот маршрут, вам понадобится сопоставитель, такой как AutoMapper, для сопоставления с вашим DTO на ваш Entity.

+0

Отличие проблем <- хорошая точка. Я сделаю именно это. Спасибо за ввод. – ErocM

0

Я не думаю, что было бы неплохо напрямую разоблачить вашу сущность таким образом. Вы должны создать DTO и передать это для обслуживания, а затем преобразовать DTO в объект и сохранить его в БД.

Причина в том, что классы EF не предназначены для сериализации. У них будет много дополнительной информации, которую вам не нужно будет отправлять на сервер.

+2

За исключением его POCO. – Maess

Смежные вопросы