gpt4 book ai didi

c# - 在哪里可以找到支持多个不同类型字段的 "Identity Field"(fowler) 模式的 C# 实现

转载 作者:太空宇宙 更新时间:2023-11-03 14:22:23 24 4
gpt4 key购买 nike

我发现了一个允许多个 long 类型字段的方法。但是,我不确定这有多大用处,因为有时我们可能会有 Guid 甚至日期。

我也可以修改他的以支持我的需求,但这似乎是一个很常见的要求,我应该能够找到经过测试、尝试过且真实的东西,而不是从头开始创建它。

我这样做的主要目的是使用 Identity Map 模式。我相信这种模式或多或少需要身份字段模式来支持它。我将使用 Identity Field 构造作为我字典的键

有什么想法吗?

谢谢

最佳答案

我认为要为多列 PK 实现类似的模式,您只需要在您的类中为表中的每个 PK 列创建一个字段/属性。

例如,如果您有一个“Message”表,其 PK 包含一个 long、一个 guid 和一个 datetime,您的类只需要包含一个 long、Guid 和一个 DateTime 属性。

您可能还希望使用这些 PK 字段为对象实现 Equals() 和 GetHashCode(),因为您希望这些对象根据数据库进行比较,而不是根据对象的内存地址进行比较。 GetHashCode 很重要,因为要确保具有相同 PK 属性的 Objects 产生相同的哈希码。要实现 GetHashCode,我建议您在此处查看 Jon Skeet 的回答:What is the best algorithm for an overridden System.Object.GetHashCode?

Fowler 的“Identity Field”模式可能假设您的表有一个代理 PK 列,这就是他按照他的方式指定它的原因。

关于c# - 在哪里可以找到支持多个不同类型字段的 "Identity Field"(fowler) 模式的 C# 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4974379/

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