Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linq 在L2S投影中是否有包含大量不匹配字段的快捷方式?_Linq_Linq To Sql_Shortcut - Fatal编程技术网

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

Linq 在L2S投影中是否有包含大量不匹配字段的快捷方式?,linq,linq-to-sql,shortcut,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() {MyID = f.ID, MyName = f.f, MyTime = f.t}
等等。。现在,将其乘以成百上千个业务对象方法,这些方法将数据具体化为具有不匹配字段名和大多数字段中数十个属性的各种类,这需要大量的键入

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

from f in foo select new MyClass()
有什么解决办法吗?还是我的手指被卡住了

编辑:

经过进一步思考(双关语),我意识到这正是L2S的用途,我可以根据需要重命名L2S数据类中的字段


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

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

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


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

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

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


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

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

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

是,我是自己得出这个结论的。有趣的是,在很多情况下,我们只是接受设计师给我们的默认值。是的,我自己得出了这个结论。有趣的是,在很多情况下,我们只是接受设计师给我们的默认值。有那么多伟大的技术在洗牌中迷失了方向。我从未听说过automapper,但它看起来很酷。谢谢你的提醒。我给你答案是因为你比Jon更需要它,而你的解决方案实际上是我所问问题的更好的解决方案,即使Jon的解决方案是我所需要的更好的解决方案;)有那么多伟大的技术在洗牌中迷失了方向。我从未听说过automapper,但它看起来很酷。谢谢你的提醒。我给你答案是因为你比Jon更需要它,而你的解决方案实际上是我所问问题的更好的解决方案,即使Jon的解决方案是我所需要的更好的解决方案;)