我有很多pre-linq C#1.0代码,它将存储过程(SQL 2005)的输出转换为对象集合。它如下:
虽然大部分代码都是生成的,但我认为linq应该允许更聪明的方式来实现它。 我是否必须明确声明一个类? 在C#3.0中,我应该如何将存储过程的输出转换为对象集合?
理想情况下我想生成代码,因为我不喜欢向导。谢谢!
编辑:我没有dbml文件。如果我使用linq到sql,我必须拥有它吗?如果是,如何创建它?
答案 0 :(得分:1)
如果要保留存储过程而不是编写LINQ to SQL查询,则可以将存储过程拖到dbml文件中,然后它将为您创建类。如果我没记错的话,你可以通过两种方式做到这一点。
1)您可以将返回结果映射到视图。
2)你可以让它为你自动生成一个课程。
如果你的存储过程类似于GetCustomers,那么它会创建一个名为GetCustomersResult之类的类或类似的东西。如果您有一个名为uvCustomers的视图,那么您可以告诉它使用该视图,而不是为每个返回相同列的存储过程使用不同的类。