【发布时间】:2012-04-12 13:29:40
【问题描述】:
我正在尝试使用表达式树和匿名类型来实现以下目标。
假设我有这个课程:
class Person
{
public string FirstName {get;set;}
public string MiddleName {get;set;}
public string LastName {get;set;}
public DateTime DateOfBirth {get;set;}
}
现在我希望能够调用以下内容:
string[] names = Foo<Person>(x=> new { x.LastName, x.DateOfBirth });
我希望名称包含 2 个项目,“LastName”和“DateOfBirth”。
我正在尝试以编译时安全的方式扩展 PetaPoco,而不是编写字符串 sql,以便我可以指定要包含在 SQL 中的属性/列的列表,而不是选择所有内容。我有一些相当大的实体,在某些情况下,出于性能原因,我不想选择所有列。
【问题讨论】:
-
除了学习练习之外,还有什么特别的理由来实现您自己的 ORM 实用程序吗?那里有许多 ORM 供应商,而且通常那些本土的供应商带来的麻烦超过了它们的价值。
-
我刚刚更新了这个问题。我实际上试图扩展 PetaPoco 以支持 SELECT 中的指定列,而不是数据类上的所有属性。