gpt4 book ai didi

entity-framework - 解决WCF数据服务问题上的DateTimeOffset的最佳方法

转载 作者:行者123 更新时间:2023-12-04 04:39:28 24 4
gpt4 key购买 nike

我尝试为 Entity Framework 模型创建WCF数据服务,该模型包含一些DateTimeOffeset类型的属性。但是,WCF数据服务不支持DateTimeOffset类型,因为我在对异常文本进行搜索之后发现“类型'Task'上的'CreationTime'属性为'DateTimeOffset'类型,这不是受支持的原始类型。'。请参阅服务器日志。有关更多详细信息。异常堆栈跟踪为:...”。

我现在正在考虑解决此问题的不同方法,包括:

  • 将类型更改为可以映射到数据库中DateTime的类型(最坏的解决方案)
  • 将数据库中的列类型保留为DateTimeOffset,将列映射到Entity Framework模型中的两个属性,一个为DateTime,另一个为整数类型的“Offset”属性。

  • 我真的不喜欢这些方法。有没有人找到解决这个问题的好方法?

    最佳答案

    只需将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/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com