EntityObject в XML и обратно в объект?(через DataTable, если возможно) - PullRequest
0 голосов
/ 27 мая 2011

РЕДАКТИРОВАТЬ 2

Я снова обновляю вопрос, чтобы более просто объяснить, что мне нужно.
Мне нужно взять любой EntityObject в моем приложении, преобразовать его в XML, который позже может быть преобразован обратно в объект AN, который может быть запрошен или использован в DataSource. Я не могу вернуться к исходному объекту EntityObject, потому что структура этого объекта могла измениться. Это выполнимо?

Оригинальный вопрос ниже

Давайте на секунду предположим, что кто-то, кто старше меня (потому что я), требует от меня взять EntityObject и преобразовать его в DataTable. Пример того, как это сделать, был отправлен мне в 2006 году и использует собственный класс (который, как думал мой начальник, встроен в .Net), и он все равно не работает.

Есть ли способ сделать это без написания собственного пользовательского класса? Что-то такое простое, как «new DataTable (myEntityObject)», было бы удивительно. Я думаю, нет, хотя.

EDIT
Я изменил вопрос, потому что мне дали неправильные критерии. В основном мы хотим, чтобы наш EntityObject был XML, чтобы его можно было сохранить в базе данных и восстановить позже. Можно ли это сделать через сериализацию?

Ответы [ 3 ]

3 голосов
/ 27 мая 2011

Чтобы ответить на ваш обновленный вопрос: используйте XmlSerializer

public XElement XmlSerialize(object o)
        {
            XmlSerializer serializer = new XmlSerializer(o.GetType());
            using (StringWriter sw = new StringWriter())
            {
                serializer.Serialize(sw, o);
                return XElement.Parse(sw.ToString());
            }
        }
1 голос
/ 27 мая 2011

Вам нужно написать класс конвертера для этого, что-то вроде этого:

public DataRow ToDataRow<T>(T entity)
public DataTable ToDataTable<T>(IEnumerable<T> entities)
1 голос
/ 27 мая 2011

Нет, такого встроенного метода / класса нет.Вы должны написать свое собственное преобразование.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...