2013-09-13 2 views
0

Мы рассматриваем добавление свойства Exception к одной из наших моделей, которые в настоящее время отображаются с использованием кода Entity Framework.Хранение объекта исключения в Entity Framework

Есть ли способ сопоставить свойство типа Exception как-то, возможно, сделав его двоичным сериализованным в базе данных, тем самым поддерживая класс модели с типом безопасности?

Я предполагаю, что я мог бы сделать эту работу каким-то образом за счет реализации двух свойств в модели, например:

public Exception Exception {get; set;} 
internal byte[] SerializedException {get; set;} 

Тогда, я бы отметить недвижимое имущество исключение как Ignore на ModelBuilder в контексте, и пусть EF используйте двоичную версию. Это, очевидно, очень неуклюжий, поскольку мне нужно будет реализовать сериализацию/десериализацию в getter/setter для реального исключения, и, как я уже сказал, я предполагаю, что это возможно, но еще не проверили его.

Мне очень любопытно, можно ли как-то реализовать это, используя тип напрямую.

ответ

1

К сожалению, я не верю, что есть какой-либо способ сделать то, что вы хотите с EF. Обычным решением является использование внутреннего свойства, как вы упомянули выше, - просто исключение из дескриптора исключений из свойства backing при первом доступе.

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

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