使用在 wcf 数据服务中实现 entity framework 实体的接口的最佳方式

best way to consume interface that implement entity framework entities in wcf data services

我正在尝试首先使用 WCF 数据服务和 entity Framework 数据库为服务器端创建客户端服务器应用程序,为客户端使用带有 MVVM 的 WPF。 除了一步之外,这一切都很好, 我为每个实体实现了部分 class(以避免自动生成代码问题)以实现一个名为 IPrimaryModel 的通用接口,该接口在每个 table 中实现所有通用属性,例如 Id 、 CreattionDate 等 下面是一个例子:

public Interface IPrimaryModel
{
    string Id { get; set; }
    string Observation { get; set; }
    System.DateTime Creation_Date { get; set; }
    Nullable<System.DateTime> Update_Date { get; set; }
}

并且对于每个实体:

public partial class Brand : IPrimaryModel {}

对于 MVVM 模式,我为所有与 WCF 和 EF 表示的每个实体相关的视图模型创建了一个基本的通用 class

public abstract class PrimaryEntityVm<T> : DgVmSource where T : class, IPrimaryModel, new()
{}

但问题是:我找不到在客户端使用 WCF 的 IPrimaryModel 的方法,我需要使用此接口进行常见操作以避免多次编写相同的代码 比如这段代码

criteria.Add(new Predicate<T>(x => x.Id != null && x.Id.Contains(ObservationFilter)));

感谢您的帮助

我通过使用带谓词的动态对象类型找到了解决方案

criteria.Add(new Predicate<dynamic>(x => x.Id != null && x.Id.Contains(ObservationFilter)));

通过这种方式,在运行时运行之前,合规性不会验证公共属性是否属于所选对象!
source

第二种方法一种强大的方法 http://www.puresolutions-online.com/Blog/December-2014/Extending-WCF-Data-Service-Entities