我在.NET 4.0上玩弄WCF REST,结果我想知道下面的想法是否可以实现?继承WCF REST操作
我对EF 4.1 CF项目有一套非常基本的POCO。它们都从基类Entity
继承(仅用于定义PK)。现在
public abstract Entity {
public int Id { get; set; }
}
,在大多数情况下,我会为我的每一个实体的CRUD功能独立的操作(或者集合,在更大的系统我猜)。
例如
[ServiceContract]
public class UserService {
[OperationContract]
public void Add(User user) {
// commit to EF
fooContext.Users.Add(user);
fooContext.SaveChanges();
}
}
现在,这主要是只是为了方便,但我在想,这样的事情会很方便:
[ServiceContract]
public abstract class BaseCrudService<T> where T : Entity {
[OperationContract]
public void Add(T entity) {
// commit to EF via generic methods
fooContext.Set<T>().Add(entity);
fooContext.SaveChanges();
}
}
public class UserService : BaseCrudService<User> {
// blah
}
...这将在理论上允许我通过http://<root>/userservice/add
访问操作并按照我的预期工作,除了我不能继承一个ServiceContract
修饰的类,所以没有希望自动级联到端点本身。
我想知道:有没有办法做到这一点?我知道继承(以这种方式)不会削减它,但有没有其他方法可以做到这一点?在多个服务操作中重复类似的代码片段听起来像是人们以前会想到的东西,并形成了一个更清晰的实现操作方式。
下面的解决方案适用于您(来自user1039947)吗?我很想知道你是否满意 – kmp