代码之家  ›  专栏  ›  技术社区  ›  Erik Funkenbusch

L2S投影中是否有许多字段不匹配的快捷方式?

  •  0
  • Erik Funkenbusch  · 技术社区  · 14 年前

    救命!我的手指因为打字而掉下来了。

    我有很多东西,它们的名字都很清楚。数据库名称不那么健全,我一直在所有投影中定义我的属性名称。

    例如:

    from f in foo select new MyClass() {MyID = f.ID, MyName = f.f, MyTime = f.t}
    

    等。。现在,将其乘以成百上千的业务对象方法,这些方法将数据具体化为具有不匹配字段名和大多数字段中数十个属性的各种类,并且需要进行大量的输入。

    所以,我想知道是否有任何方法(可能通过属性或其他方式)允许您为类定义默认映射,这样即使字段不匹配,我也可以简单地说:

    from f in foo select new MyClass()
    

    有什么解决办法吗?还是我一直在打字?

    编辑:

    经过进一步的思考(pun-semi-intended),我意识到这正是L2S的用途,我可以将L2S数据类中的字段重命名为我需要的任何字段。

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

    2 回复  |  直到 14 年前
        1
  •  1
  •   Basic    14 年前

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

        2
  •  2
  •   Jon Skeet    14 年前

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

    只需进入设计器,单击属性并更改名称部分。(源属性是数据库列名。)重新生成项目,名称将发生更改。

    或者,如果总是从一个源转换为同一个类型,请为转换为目标类型的源数据类型在分部类中创建一个方法,反之亦然。所以你可以写一个 Foo.ToMyClass() 方法,或 MyClass.FromFoo(Foo foo) .