根据.NET的当前状态,建议的模式和/或技术是什么?
我想通过WCF服务传播我的EF生成的SQL数据库模型。我不想在EF中关闭延迟加载,因为我不希望层次结构化实体的级联加载。
在客户端,我不能访问导航属性,好像我会处理真正的EF对象而不是WCF代理。我不想发送包含上下文对象的EF对象,因为在我看来这会破坏SOA模式。
实际上我想更改Visual Studio生成的Reference.cs文件的实现,以便每次访问navigation-property都会在需要时引发对服务层的异步回调。
示例:这是一个公司类,它通过导航属性引用强制类。这是默认的WCF代理技术给我的东西:
[System.Runtime.Serialization.DataMemberAttribute()]
public AddressManager.CompanyService.Mandatory Mandatory {
get {
return this.MandatoryField;
}
set {
if ((object.ReferenceEquals(this.MandatoryField, value) != true)) {
this.MandatoryField = value;
this.RaisePropertyChanged("Mandatory");
}
}
}
这就是我想要的:
[System.Runtime.Serialization.DataMemberAttribute()]
public AddressManager.CompanyService.Mandatory Mandatory {
get {
if (this.MandatoryField == null)
{
// RAISE SERVICE-METHOD HERE
}
return this.MandatoryField;
}
set {
if ((object.ReferenceEquals(this.MandatoryField, value) != true)) {
this.MandatoryField = value;
this.RaisePropertyChanged("Mandatory");
}
}
}
答案 0 :(得分:2)
这不是一个好方法。
答案 1 :(得分:0)
杰夫告诉我使用OData,它对我有用。谢谢!