尝试通过将Oracle数据库中的字段映射到对象属性来创建数据访问组件。我已经创建了一个基本对象,它接受一个类型并像这样调用...
public class Document : DataProviderBase<DataObjects.Document>
{
// code goes here...
}
这个基础对象有一个叫做AddMapping
的方法,用来将数据库字段映射到属性上,就像这样...
this.AddMapping<int>("ATD_KEY", "Key")
在这种情况下,
int
是属性的类型,ATD_KEY
是数据库中的字段名,而Key
则是DataObjects.Document
上的属性名。该代码使用...
typeof(<TParent>).GetProperty(<property name>)
..获取 PropertyInfo
,用于获取和设置属性。
虽然这很好,但我想在 AddMapping
方法中增加一些类型安全性和 lambda 表达式。我想做如下操作...
this.AddMapping<int>("ATD_KEY", o => o.Key)
...其中o
的类型由DataProviderBase
提供。这将确保属性Key
实际上是int
类型,并确保字符串"Key"
没有拼错或大小写错误,这是当前工作代码中第一个AddMapping
方法存在的问题。
这是否可能?如果可以,如何实现?
我找到的最接近的示例是Dynamic Expression from the Property of the object of the class,但是它仍然通过字符串而不是表达式引用属性。