【问题标题】:Is there a simple Linq to SQL generator with bi-directional serialization attributes?是否有一个具有双向序列化属性的简单 Linq to SQL 生成器?
【发布时间】:2010-01-17 02:31:11
【问题描述】:

我正在尝试找到一种方法来生成具有双向序列化属性的 Linq to SQL 类。基本上,我希望在每个关联属性上都有一个 DataMember 标记(具有适当的顺序),而不仅仅是类是主键的那些(如 Visual Studio 生成器和 SQL Metal 所做的)。我检查了 MyGeneration,但并没有真正找到任何对我有用的东西。我认为 T4 Toolbox 将成为我的解决方案,修改它以添加属性会很容易,但我在 WCF 服务的调用端遇到异常,并且我没有得到任何回复.我即将尝试安装 CodeSmith 并使用 PLINQO,但我更喜欢免费的。

我非常接近于编写自己的 T4 生成器,但在此之前,我希望先找到一个预先构建的解决方案来解决这个相当简单的问题。

【问题讨论】:

  • 我刚刚找到了这个:tinyurl.com/ybxr2cp,这看起来正是我需要的,但我遇到了一些问题,在这里描述:tinyurl.com/y8ptyzs。我想如果我能解决这个问题,我会顺利进行的。

标签: linq-to-sql serialization code-generation


【解决方案1】:

我最终为我们的 L2S 课程编写了自己的代码生成器。我们实际上生成了两组类。一个是供客户端应用程序使用的“轻量级”实体集。这些类没有 L2S 管道。但是它们具有正确顺序的完整数据成员属性。然后我们有我们的 L2S 实体,这些实体严格供后端使用。效果很好。

小心使用 PLINQO。我已经广泛研究了该产品。事实上,我的大部分代码生成器都是基于 PLINQO 生成的代码。然而,他们在如何实现多对多关系方面存在“重大缺陷”(他们的话)。

您可能还想看看名为“Reegenerator”的产品。

兰迪

【讨论】:

  • 您提到的主要缺陷不是 PLINQO 的多对多实现。它与 Microsoft 在特定领域的闭源 Linq-to-SQL 实现有关,在这些领域中 PLINQO 无法执行高级功能,例如使用多对多的未来查询,因为无法访问内部 Linq-To-SQL 信息,即需要。
  • @Blake - 问题确实出在 PLINQO 的 M:M 实现上。他们特别告诉我,他们的 M:M 实现中存在“重大”设计缺陷,他们无法给我任何可能修复的日期。生成的代码有问题。这不能归咎于微软的“封闭系统”。
  • 如果我们不能修改运行时处理多对多的方式,那么在这种情况下我们就无能为力了。如果您有一个适用于多对多的解决方法,我们很乐意听到它。此外,如果您能指出生成的特定代码有问题,我们很乐意修复它。
【解决方案2】:

This 原来是我的问题的解决方案。当我偶然发现它时,我刚刚辞职开始研究我自己的发电机。它有一个双向序列化选项,效果很好! Here's a link to the author's bog,其中包含一个很好的入门视频示例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-24
    • 2019-11-08
    • 1970-01-01
    • 2012-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多