帮助!我的手指因打字而脱落。
我有很多具有合理名称的对象。数据库名称不是那么理智,我在所有预测中都无法定义我的属性名称。
例如:
from f in foo select new MyClass() {MyID = f.ID, MyName = f.f, MyTime = f.t}
等等。现在,将这个乘以数百甚至数千个业务对象方法,这些方法将数据具体化为具有不匹配字段名称的各种类,并且在大多数字段中都有许多属性,并且需要进行大量输入。
所以,我想知道是否有任何方法(可能通过属性或其他方式)允许您为类定义默认映射,这样即使字段不匹配,我也可以简单地说:
from f in foo select new MyClass()
任何解决方案?或者我是不是会把手指放下来?
编辑:
经过进一步的反思(双关语),我意识到这正是L2S的用途,我可以将L2S数据类中的字段重命名为我需要的字段。
有时最简单的答案就在我们面前。
答案 0 :(得分:2)
嗯,一个明显的选择是转到DBML设计器并更改生成的类中的属性名称。它们不必与数据库中的相同。
只需进入设计器,点击属性并更改名称部分即可。 (Source属性是数据库列名。)重建项目,名称将更改。
或者,如果您始终从一个源转换为相同类型,则在源数据类型的分部类中创建一个方法,该方法将转换为目标源 - 反之亦然。因此,您可以编写Foo.ToMyClass()
方法或MyClass.FromFoo(Foo foo)
。
答案 1 :(得分:1)
另外一个建议 - AutoMapper允许您注册一次映射,然后调用共享方法从一个对象映射到另一个对象