L2S投影中是否有任何快捷方式,包含大量不匹配的字段?

时间:2010-08-14 19:11:44

标签: linq linq-to-sql shortcut

帮助!我的手指因打字而脱落。

我有很多具有合理名称的对象。数据库名称不是那么理智,我在所有预测中都无法定义我的属性名称。

例如:

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数据类中的字段重命名为我需要的字段。

有时最简单的答案就在我们面前。

2 个答案:

答案 0 :(得分:2)

嗯,一个明显的选择是转到DBML设计器并更改生成的类中的属性名称。它们不必与数据库中的相同。

只需进入设计器,点击属性并更改名称部分即可。 (Source属性是数据库列名。)重建项目,名称将更改。

或者,如果您始终从一个源转换为相同类型,则在源数据类型的分部类中创建一个方法,该方法将转换为目标源 - 反之亦然。因此,您可以编写Foo.ToMyClass()方法或MyClass.FromFoo(Foo foo)

答案 1 :(得分:1)

另外一个建议 - AutoMapper允许您注册一次映射,然后调用共享方法从一个对象映射到另一个对象