2010-10-05 112 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