我想将一个类的属性列表传递给一个函数。在基于属性列表的函数中,我将生成一个查询。与 Linq Select 方法中的功能完全相同。在这里,我将为 Ingress 数据库实现此功能。
举个例子,
在前端我想像这样运行一个选择,
我的实体类是这样的
public class Customer
{
[System.Data.Linq.Mapping.ColumnAttribute(Name="Id",IsPrimaryKey=true)]
public string Id { get; set; }
[System.Data.Linq.Mapping.ColumnAttribute(Name = "Name")]
public string Name { get; set; }
[System.Data.Linq.Mapping.ColumnAttribute(Name = "Address")]
public string Address { get; set; }
[System.Data.Linq.Mapping.ColumnAttribute(Name = "Email")]
public string Email { get; set; }
[System.Data.Linq.Mapping.ColumnAttribute(Name = "Mobile")]
public string Mobile { get; set; }
}
我想像这样调用 Select 函数,
var result = dataAccessService.Select<Customer>(C=>C.Name,C.Address);
然后,使用结果我可以获得名称和地址属性的值。
我认为我的 Select 函数应该是这样的,
(*我认为这应该使用 Linq 表达式来完成。但我不确定输入参数和返回类型是什么。*)
Class DataAccessService
{
// I'm not sure about this return type and input types, generic types.
public TResult Select<TSource,TResult>(Expression<Func<TSource,TResult>> selector)
{
// Here I wanna Iterate through the property list, which is passed from the caller.
// Here using the property list,
// I can get the ColumnAttribute name value and I can generate a select query.
}
}
这是尝试创建类似于 Linq 的功能。但我不是 Linq 表达式方面的专家。
麻省理工学院有一个名为DbLinq的项目,但它是一个大项目,我仍然无法从中获得任何帮助。
有人可以帮我开始这个吗,或者有人可以链接我一些有用的资源来阅读这个。