LINQ2SQL-存储过程不会在设计器中生成类

|| 我基本上是想通过设计器向我的LINQ2SQL添加一组存储过程。 它将存储过程添加到方法面板,但不会在设计器上生成类(尽管它在后面的设计器代码中生成)。 它基于存储过程为返回类型赋予了一个奇怪的名称,基本上,我正在尝试找出将返回类型更改为更有意义的最佳方法。 我知道我可以在设计器上手动创建类,但是我有5个非常大的类,并且想知道是否有一种方法可以自动创建这些类,或者只是正确重命名返回类型? 我找到了这个问题,但我认为这涉及到手工编写您的课程,然后做一些改动,所以不确定它: LINQ to SQL-无法修改存储过程的返回类型     
已邀请:
        参见Scott Guthrie的这篇文章。 如果向下滚动到\“将SPROC方法的返回类型映射到数据模型类\”部分,则可以看到,如果将存储过程拖到LINQ2SQL设计器中的特定模型类上,它将告诉设计器您希望存储过程返回该模型类型的集合。 您还可以研究人们处理存储过程中返回多种类型数据的方式,以此作为解决问题的一种方法。     
        我不确定是否将类添加到表中,但这是“重新命名”存储过程的返回类型的一种方法。 以下步骤假定存储过程名为\“ GetSomeThings \”和一个数据上下文\\“ DataContext \”。 将存储过程添加到设计器时,将其重命名为\“ GetSomeThingsPrivate \”。在designer.cs文件中,现在将定义一个名为\“ GetSomeThingsPrivateResult \”的类。 创建一个名为\“ Thing \”的新类。定义一个新的部分类,如下所示:
public partial class GetSomeThingsPrivateResult : Thing {}
定义一个新的部分类,如下所示:
public partial class DataContext
{
    public IEnumerable<Thing> GetSomeThings()
    {
        return GetSomeThingsPrivate.Cast<Thing>();
    }
}
现在您可以调用
GetSomeThings()
方法,该方法将调用
\"GetSomeThings\"
存储过程,返回的内容将是IEnumerable
Thing
,而不是
GetSomeThingsResult
。 请注意,设计器生成的方法返回ISingleResult,而新方法返回IEnumerable。如果您需要ISingleResult功能,那么您将需要找到其他解决方法-我并没有花费很多时间来使它工作。     

要回复问题请先登录注册