gpt4 book ai didi

ormlite-servicestack - 使用 Servicestack ORMLite 加载所有分层引用

转载 作者:行者123 更新时间:2023-12-05 02:22:35 26 4
gpt4 key购买 nike

有没有办法用 servicestack/ormlite 预加载所有嵌套和子嵌套引用?

 public class Person

{

public int Id { get; set; }

[References(typeof(Pants))]
public int PantsId { get; set; }

[Reference]
public Pants Pants { get; set; }

}

public class Pants
{

public int Id { get; set; }

[References(typeof(Pocket))]
public int PocketId { get; set; }

[Reference]
public Pocket Pocket { get; set; }

}

public class Pocket
{

public int Id { get; set; }

public int Depth { get; set; }

}

Db.LoadSelect<Person>()

当我使用 Db.LoadSelect() 加载一个人时,它只获取对 person.Pants 的引用... person.Pants.Pocket 为空。我必须执行 Db.LoadReferences(person.Pants) 才能加载口袋引用。

有什么方法可以自动加载所有嵌套引用,还是仅限于一层?

谢谢。

最佳答案

OrmLite 的 db.Load* API 仅限于加载 1 级深度的引用。 Db.LoadReferences(instance) 可用于进一步获取断开连接的 POCO 的引用。

如果单独加载引用以避免通过在循环中加载它们来避免 N+1 查询,您还应该注意,即在可能的情况下,最好使用单个查询来获取相关记录以避免多个数据库点击。

关于ormlite-servicestack - 使用 Servicestack ORMLite 加载所有分层引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28374129/

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