我正在使用EDMX創建WCF數據服務的OData服務。如何爲實體類型創建計算屬性,以便其值在服務(C#)中進行計算,而不是來自數據庫?
此屬性的值基於映射到數據庫中的字段的其他屬性的值。如何在數據服務(OData)中創建計算屬性?
6
A
回答
2
我發現的解決方案是使用Entity Framework Code First而不是EDMX。它允許您通過在代碼中創建標準屬性來創建計算屬性。
下面是一個例子:
public class Person
{
public String FirstName { get; set; }
public String LastName { get; set; }
public String FullName
{
get { return FirstName + " " + LastName; }
}
}
2
如果直接暴露你的EDMX文件,使用默認的實體框架提供數據服務的,是這樣的:
public class MyService: DataService<MyEntities> {
然後不幸的是你不能公開任何「新」的性質是不在底層的Entity Framework EDM模型中。
說了你還有其他選擇,你可以編寫一個反射提供程序或自定義提供程序,它可以添加額外的屬性並將大部分工作委託給EF。
問題是設置所有委派今天不容易。
這個series of posts解釋提供者和如何創建一個基於自定義提供者的服務,而這one shows如何使用反射提供者創建一個服務。
+0
由於亞歷克斯。我會將您的答覆標記爲已接受的答案,儘管我找到了一個更簡單的解決方案:不是使用EDMX,而是使用實體框架代碼優先;它允許我通過在代碼中創建屬性來創建計算屬性。我將在博客文章中記錄這一點。 – Fabrice 2010-10-06 08:08:02
相關問題
- 1. 如何從OData服務的導航屬性獲取數據
- 2. 如何使用PHP創建Odata服務?
- 3. 如何在PosgreSQL中創建計算屬性
- 4. 計算字段和OData/WCF數據服務
- 5. 在計算屬性中加載數據
- 6. WCF數據服務(OData) - 使用外鍵擴展導航屬性
- 7. Ember服務對象的計算屬性
- 8. WCF數據服務ODATA
- 9. Dojo + WCF數據服務+ OData
- 10. 如何在android上創建訪問OData服務的代理
- 11. 在ASP.NET中如何計算'name'屬性?
- 12. 如何在IIS7中託管WCF數據服務(OData)?
- 13. 計算屬性在服務中不起作用
- 14. 如何使用模板爲C++類創建「計算屬性」
- 15. 實體框架計算屬性Odata Feed中未顯示
- 16. 如何在RIA服務中使用OData
- 17. 如何從計算屬性中訪問數據Vue.js
- 18. 如何在警報中創建計算?
- 19. 如何在iframe中創建HTML5數據屬性
- 20. 如何使用odata服務從manifest.json動態創建模型
- 21. 如何保護OData服務?
- 22. 計算屬性
- 23. 如何在CruiseControl.Net中創建屬性
- 24. 如何在Weka中創建屬性
- 25. 如何創建服務構建在數據庫表?
- 26. 如何從另一個列表中創建數據計算列
- 27. 如何在WPF中創建設計時間屬性?
- 28. 使用ADO.NET數據服務工具包時,將OData屬性設爲可爲空
- 29. 在Vuejs中使用數據中的計算屬性
- 30. 展開了WCF數據服務(OData的)
不幸的是,它僅適用於提供能力構建只讀數據服務的反射提供程序。 – 2014-09-05 07:59:24