传输可能的对象状态。 WCF - MVC

时间:2017-02-06 11:42:10

标签: c# asp.net-mvc wcf data-transfer-objects

我已经分离了MVC和WCF服务的网站。我有一个问题,如何在接口和服务层之间交换数据?我想提高生产力,同时保持正确的架构。我的解决方案中有许多常量字典,用于表征不同的对象。所以有时我需要为一个页面提供5个或更多服务调用来获取comboBox的可用值。如何加快速度并使其适合其他情况?

对于前。你有一个页面课。

public class Person
{
   public int Id {get; set;}
   public string Name {get; set;}
}

您需要为人员添加状态,并从值列表中进行选择,以便在界面中进行编辑。

选项1。

public class Person
{
  //......
  public KeyValuePair<int,string> State {get; set;}
}

对于填充组合框值,根据需要,您应该从服务中调用 GetPersonStates()。当你更新对象时,它还不清楚如何处理对的值。

选项2。

public class Person
{
  //......
  public int StateId {get; set;}
}

对于只读操作,您应该从service获取stateName。 对于填充组合框值,您可以根据需要从服务中调用 GetPersonStates()

选项3。

public class Person{
   //.........
   public int StateId {get; set;}
}
public class PersonPage{
   public Person Person {get; set;}
   public Dictionary<int, string> StateDict {get; set;}
}

在get方法中,您使用PersonPage对象(stateDict具有comboBox的值)。在post方法中,你使用person对象whith stateId作为参数。

SavePerson(Person person, int stateId);

选项4。

public class Person{
   //.........
   public int StateId {get; set;}
}

并将缓存的值存储在MVC中。

 public Dictionary<int, string> StateDict {get; set;}

这与第二种方法非常相似,但它可以节省时间。

您更喜欢哪种选择?或者建议别人。

0 个答案:

没有答案