0

我计划为我的项目使用更轻量级的 ORM 工具(主要是因为性能和内存使用情况,使用 EF 很沮丧)。我正在考虑使用 ORMLite,它似乎是一个非常整洁的 ORM 包。

我唯一无法弄清楚如何解决急切加载相关模型的方法。

public class Account
{
     public string Id { get; set; }
     public string CreatedById { get; set; }

     public User CreatedBy { get; set; }
} 

使用上面的类,我也希望能够在相关的“CreatedBy”字段上加载一些字段。

SELECT Id, CreatedById, CreatedBy.Name FROM Account

急切地加载引用非常重要,因为一个数据库查询可以加载数百条记录,但我将能够在网格中显示谁创建了记录。

我怎样才能做到这一点?

4

1 回答 1

0

轻量级 orms 不包含 EF 或 nHibernate 中可用的功能,它们速度很快,但您必须编写更多代码。ormlite 中不存在急切加载。
但是让我们从头开始:) 您的帐户类应如下所示:

public class Account
{
     public string Id { get; set; }
     public string CreatedById { get; set; }

     [References(typeof(User))]
     public int CreatedBy { get; set; }
} 
public class User
{
     public string Id { get; set; }
     public string Name { get; set; }
} 

您不能拥有 User 类型的属性 CreatedBy - 服务堆栈 ormlite 不支持这一点。您的类必须看起来像您的表,并且在表中您有名为 CreatedBy 的 int 列;)在这里您可以阅读如何从 ormlite -JoinSqlBuilder进行连接

于 2013-07-26T19:46:06.357 回答