【发布时间】:2016-07-30 17:59:55
【问题描述】:
我正在尝试首先使用 WCF 数据服务和实体框架数据库为服务器端创建客户端服务器应用程序,并为客户端创建带有 MVVM 的 WPF。 这一切都很好,除了一步, 我为每个实体实现了一个部分类(以避免自动生成的代码问题)来实现一个名为 IPrimaryModel 的通用接口,该接口实现了每个表中的所有通用属性,例如 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 表示的每个实体相关
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)));
感谢您的帮助
【问题讨论】:
-
您可以在放置界面的位置创建新项目。然后在 WCF 和客户端引用该项目。
-
谢谢你的回答,但这也无济于事,总是不能用作类型参数'T' bcs没有隐式引用转换..
-
我尝试使用相同的 wcf 项目,但这也会产生冲突错误..
-
我明白了,那么我认为您可以为 WCF 生成的类型创建一些“外观”类。或者为 WCF 使用 cusotm 代理生成。
-
在一天结束时,您会遇到不支持泛型的 EF 限制。但我并不完全清楚你想要
Predicate<T>是什么。
标签: c# wpf entity-framework mvvm wcf-data-services