2012-07-31 93 views
0

在我的ASP.NET网站中,我创建了新的实体数据模型并将其与我的MsSql数据库连接起来。现在我可以使用Model.Student类,但该类没有方法。我尝试添加的扩展方法,如数据库模型和扩展方法

public static class Functions{ 
    public static double calculateStudentScore(this Model.Student s){ 
      //implementation 
    } 
} 

当我创造新的学生和尝试调用我的方法,我还看不出来,为什么会这样?

例如让假设sStudent

double score=s.calculateStudentScore();//I can't see my calculateStudentScore method 
+0

你试图计算什么样的价值?我没有看到任何值传递到该方法.. – MethodMan 2012-07-31 22:10:55

+3

您是否已将'使用TheNameSpaceWhereYourExtensionMethodIs;'添加到顶部? – 2012-07-31 22:12:20

+0

到顶部是什么? – MrD 2012-07-31 22:14:18

回答

1

你的EF模型类型是一个局部类。虽然我原则上同意扩展应该是可见的,但同时,只需添加一个新文件,然后将该方法添加到该类中。

+0

现在没关系,我在方法声明中忘记了static关键字。 Thx给大家! – MrD 2012-08-01 00:04:22

+0

这引发了一个有趣的问题:程度还是不够?哪种方法更好?更快?更多维修包? – Darek 2012-08-01 00:39:12

+0

嗯,我这样做是因为它更容易维护。如果我改变模型,我的方法没有问题:) – MrD 2012-08-01 18:29:24