Я научился создавать многошаговое приложение из книги Стива Сандерсона (Pro ASP.Net MVC / APress p.477).С тех пор я адаптировал эту технику ко многим сценариям.По сути, речь идет о сериализации / десериализации для сохранения данных между запросами.
Но единственная проблема в том, что я не могу использовать модель, сгенерированную Linq2Sql, потому что MVC будет жаловаться, что теклассы не помечены [serializable] .
Так что я делаю явное преобразование .Я создаю один и тот же класс, чтобы соответствовать классу, созданному Linq2Sql: Итак, я получаю дважды одинаковый контент с немного разными именами.Например, Client и ClientData, Product и ProductData, Registration и RegistrationData и т. Д. Каждая пара содержит абсолютно одинаковые свойства.
Пример: Чтобы обработать экземпляр клиента,
- Я извлекаю его из БД, используя Linq2Sql, полагаясь на его id
- Я преобразую экземпляр Client, извлеченный из БД, в экземпляр ClientData, используя статический метод, который просто присваивает значения свойств одного экземпляра другим.
- После обработки я делаю наоборот: я преобразую экземпляр ClientDataв клиент и сохранить его в БД с помощью Linq2Sql.
Затем я должен написать бесполезный код и начать забывать, какой из них что делает. Вопрос: Могу ли я использовать какие-либо методы, чтобы избежать явного преобразования и все же иметь возможность сериализации данных из экземпляров классов, сгенерированных Linq2Sql.
Ниже приведен тип метода, который я использую для преобразования экземпляра одного типа в экземпляр другого типа.У меня есть 2 способа, один для получения данных, а другой для сохранения в БД.
public static Client Translate_Client_Into_ClientData(Client client)
{
return new ClientData()
{
ClientID = client.ClientID,
FirstName = client.FirstName,
LastName = client.LastName
//And so and so ...
}
}
Похоже, я не иссякаю, скорее намокну ... таким образом.
Спасибо за помощь