2010-10-05 103 views

回答

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; } 
    } 
} 
+0

不幸的是,它僅適用於提供能力構建只讀數據服務的反射提供程序。 – 2014-09-05 07:59:24

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