我尝试为 Entity Framework 模型创建WCF数据服务,该模型包含一些DateTimeOffeset类型的属性。但是,WCF数据服务不支持DateTimeOffset类型,因为我在对异常文本进行搜索之后发现“类型'Task'上的'CreationTime'属性为'DateTimeOffset'类型,这不是受支持的原始类型。'。请参阅服务器日志。有关更多详细信息。异常堆栈跟踪为:...”。
我现在正在考虑解决此问题的不同方法,包括:
我真的不喜欢这些方法。有没有人找到解决这个问题的好方法?
最佳答案
只需将DateTimeOffset类型作为KnownType添加到包含CreationTime属性的EF数据协定中,如http://msdn.microsoft.com/en-us/library/ms730167.aspx中所述。
DateTimeOffset是实际上被作为基元处理的复杂.NET类型之一,但默认情况下,它没有被注册为序列化程序的KnownType。因此,您需要手动执行此操作。
您的代码可能如下所示:
[DataContract]
[KnownType(typeof(DateTimeOffset))]
public class Task
{
[DataMember]
private DateTimeOffset CreationTime;
...
关于entity-framework - 解决WCF数据服务问题上的DateTimeOffset的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3700777/