我打算在我的项目中使用更轻量级的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
Eager加载引用非常重要,因为一个数据库查询可以加载数百条记录,但我可以显示谁在网格中创建了记录。
我怎样才能实现这一目标?
答案 0 :(得分: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; }
}
您不能拥有属性CreatedBy的用户类型 - 服务堆栈ormlite不支持此功能。您的类必须看起来像您的表,并且在表中您有名称为CreatedBy的int列;) 在这里,您可以阅读如何从ormlite- JoinSqlBuilder
进行加入