【问题标题】:LLBLGEN related array not populating in entityLLBLGEN 相关数组未填充到实体中
【发布时间】:2010-11-18 14:48:30
【问题描述】:

我正在与 LLBLGEN 作斗争,我猜总体上是 ORM。 我已经创建了一个实体,让我们使用一个库示例来解释:

我想显示一个图书对象并返回一个借出图书的用户列表。 所以我需要返回包含用户列表的 book 对象。

DTO Book::
int bookId,
string bookName

另外,我希望将我的书归还给已借书的用户集合:

List<user> Loans

贷款表可能如下所示:

int id
int userid
int bookid

目前我的贷款实体已经创建了这个:

DTO Loans
int id
User user // user entity
Book book // book entity

我很难理解这个例子在 llblgen 中是如何工作的。任何人都可以提供指导或指导我的教程吗? 目前,当我用与一本书关联的新贷款更新我的模型 Book 时,我遇到了 stackoverflow 错误。我认为这是在尝试更新我的 Book 对象时创建某种循环。

谢谢

【问题讨论】:

    标签: asp.net-mvc-2 orm llblgenpro llblgen


    【解决方案1】:

    我注意到在 SQL 上运行分析器时,该 sql 语句没有在我的关系实体中包含任何连接语句。 这是因为我的域查询不包括我的关系的预取项,我在查询中添加了以下内容:

            var query = new DomainSearch<T>
                       {    
                           SearchText = searchText,
                           PrefetchItems =
                               {
                                   new Prefetch(typeof(Users))
                               }
                       };
    

    【讨论】:

      【解决方案2】:

      为确保您正在查找已借出特定图书实体的用户实体列表。这是正确的用例,还是您正在寻找已借阅特定书籍的用户实体列表?

      无论如何,LLBLGen 对这些案例的支持非常好,可以引用实体之间的关系以及快速轻松地使用相关实体。

      假设您正在通过唯一 BookId/ISBN/等查找一本书......

      // Get the specific book entity
      BookEntity book = new BookEntity(bookId);
      
      foreach(UserEntity user in book.users)
      {
          // do stuff with list of users
      }
      

      假设您已经定义了实体之间的关系,就这么简单。

      【讨论】:

      • 本示例假设您使用的是支持延迟加载相关集合的 SelfServicing。如果使用 Adapter,您需要自己使用 PreFetch 路径手动获取相关集合。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多