gpt4 book ai didi

c# - 传输 LINQ 数据对象

转载 作者:行者123 更新时间:2023-11-30 22:50:05 27 4
gpt4 key购买 nike

我正在开发一个 Web 服务,我们在其中使用 LINQ-to-SQL 进行数据库抽象。当客户使用我们的网络服务时,对象被序列化为 XML,一切都很好。

现在我们希望开发我们自己的使用本地数据类型的客户端,因为没有理由执行 objects->xml->objects。但是,据我了解,您不能传输 LINQ 对象,因为它们直接映射到数据库,因此数据是“实时的”。

我的问题是是否有一种方法可以对您提取的数据进行“快照”,将 LINQ 对象设置为“离线”,然后进行传输。数据在传输到我们的客户端后不会更改,我们不需要数据库访问权限。

最佳答案

LINQ-to-SQL 类可以很容易地与 DataContractSerializer(对于 WCF)一起使用(不过,您需要在设计器中启用序列化属性)。有了这个,您应该能够与客户端共享数据集。只要您不使用数据上下文,对象本身就应该表现良好(只是断开连接 - 所以没有延迟加载)。

诀窍在于您需要在序列化代码中重新使用这些类型(来自现有程序集)。如果您使用的是 WCF,则可以使用 svcutil/r 或通过 IDE 执行此操作。

尽管如此;为这些场景维护单独的 DTO 类通常更简洁。但我有时会以上述方式这样做,这让我感到内疚。

关于c# - 传输 LINQ 数据对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/760017/

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