C# 在实体框架中存储异常对象

C# 在实体框架中存储异常对象,c#,entity-framework,ef-code-first,C#,Entity Framework,Ef Code First,我们正在考虑将异常属性添加到当前首先使用实体框架代码映射的一个模型中 是否有一种方法可以直接映射Exception类型的属性,可能是通过在数据库中对其进行二进制序列化,从而维护类型安全的模型类 我假设我可以通过在模型中实现两个属性来实现这一点,例如: public Exception Exception {get; set;} internal byte[] SerializedException {get; set;} 然后,我会在上下文中的modelbuilder上将真正的异常属性标记为I

我们正在考虑将异常属性添加到当前首先使用实体框架代码映射的一个模型中

是否有一种方法可以直接映射
Exception
类型的属性,可能是通过在数据库中对其进行二进制序列化,从而维护类型安全的模型类

我假设我可以通过在模型中实现两个属性来实现这一点,例如:

public Exception Exception {get; set;}
internal byte[] SerializedException {get; set;}
然后,我会在上下文中的modelbuilder上将真正的异常属性标记为
Ignore
,并让EF使用二进制版本。这显然非常笨拙,因为我需要在getter/setter中为真正的异常实现序列化/反序列化,正如我所说的,我只是假设这是可能的,但还没有测试它


我很好奇是否有可能直接使用类型来实现这一点。

不幸的是,我不相信有任何方法可以用EF实现您想要的功能。通常的解决方案是使用如上所述的内部属性——只要在第一次访问备份属性时将其进行异常反序列化即可

这并不漂亮,但EF并没有公开一个扩展点来插入POCO和数据库之间的自定义类型转换器,所以这是我们所能做的最好的事情