【问题标题】:db4o mvc index page to detail pagedb4o mvc 索引页到详细信息页
【发布时间】:2009-12-16 06:59:17
【问题描述】:

在 MVC 应用程序中,您可以单击以查看详细信息和/或进行编辑的对象列表是很常见的。使用关系数据库时,这是通过使用主键或 id 来实现的:

<%= Html.ActionLink(dinner.Title, "Details", new { id=dinner.DinnerID }) %>

您将如何使用 oodb(如 db4o)来做到这一点?

谢谢!

【问题讨论】:

    标签: asp.net-mvc db4o


    【解决方案1】:

    有三种可能:

    • 使用internal object-id。 Db4o 为每个对象提供一个内部 id,您可以使用它。但是,一旦您对数据库进行碎片整理,此 ID 就会更改。因此它不适用于永久链接。

    • 使用Db4o-GUID:Db4o 可以为每个对象生成一个 UUID。您可以将其用作 id。但是这个 UUID 很大。

    • 使用您自己的 ID。您可以自己为您的对象分配一些 ID。有不同的可能性。例如,您可以为每个对象创建一个 Guid。或使用HiLo-Algorithm

    【讨论】:

    • 跟我想的差不多。我想我会和Guid一起去。谢谢!
    • 小心,旧版本的 db4o 对 Guid 的处理非常糟糕。当前的 7.12 版本处理 Guid 的效率更高。
    • 我使用的是 7.4。 id 怎么样?
    • System.Guid 是一个值类型。并且一旦您使用 db4o 7.4 存储它,它就会被装箱到一个对象中。这使得查询正确的 Guid 效率很低。此外,db4o 被 GUID 的装箱/拆箱弄糊涂了,可能会存储两次。它仍然可以正常工作,但是您将不必要的日期存储在数据库中。所以你可以升级到 7.12,但那个版本仍然是测试版。或者您可以将 guid 存储为字符串字段。或者您可以忍受 db4o 7.4 的 System.Guid-handling 问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-07
    相关资源
    最近更新 更多