【Entity Framework】Entity Framework 執行Function

Entity Framework 執行Function

在Enity Framewokr要執行DB中的Function。

 

有兩種方式:

1.把Function當一般Sql Command來執行取結果

2.透過Linq 來MappingDB的Function。

 

今天針對第二點來撰寫,實際應該也比較多是趨近於第二種。

 

先看MSDN:https://msdn.microsoft.com/en-us/library/vstudio/dd456847%28v=vs.100%29.aspx

 

以下說明範例來源就是MSDN裡面的範例。

 

第一步:

將Function拉進EDMX中。

第二步:

建立一個Function來Map EDMX中的Function。

透過EdmFunction這個Attribute來做Mapping的動作。其中
SchoolModel.Store => 是你的Model名稱 + 【.Store】。看你的EDMX,透過模型瀏覽器會發現View、SP、Function都在【.Store】。
AvgStudentGrade => 是你DB中的Function名稱。
   1: [EdmFunction("SchoolModel.Store", "AvgStudentGrade")]
   2: public static decimal? AvgStudentGrade(int studentId)
   3: {
   4:     throw new NotSupportedException("Direct calls are not supported.");
   5: }
 
如此就可以透過Linq語法直接使用DB中的Function。