ASP.NET | MVC 4 | C#| WCFASP.NET MVC - 模型的WCF类
我正在使用WCF Web服务作为从表示层(MVC)到数据层(实体)的中介。为了简化将数据模型数据从MVC移动到Web服务,我想我会在WCF中使用代理类,以便有一个集中的类。不幸的是,这导致模型中属性的MVC装饰丢失。有没有一种创建MVC视图模型的集中式类的好方法,还可以作为WCF服务的传输方法?
Automapping是一个选项,但我相信这需要两个相同的类。一个在MVC端,另一个在WCF端。如果在课堂上更改了属性,这仍然会要求我在双方进行更改。
任何其他建议,将不胜感激。谢谢!
编辑::例
这里是模型包含的记录
public class ReconcileModel
{
#region PROPERTIES
public List<ReconcileItem> ReconcileItems { get; set;}
#endregion
#region CONSTRUCTORS
public ReconcileModel()
{
ReconcileItems = new List<ReconcileItem>();
}
#endregion
}
表下面是一个类来表示该表中每条记录的页面。
public class ReconcileItem
{
#region PROPERTIES
public int ID { get; set; }
public string Description { get; set; }
public string LastLocation { get; set; }
public string LastRead { get; set; }
public string IntendenLocation { get; set; }
public string PickId { get; set; }
public string OEM { get; set; }
public string LotNumber { get; set; }
public string SerialNumber { get; set; }
public DateTime ExpirationDate { get; set; }
public string ReconcileReason { get; set; }
public string RemoveReason { get; set; }
#endregion
#region CONSTRUCTORS
public ReconcileItem()
{
}
#endregion
}
类的WCF合同表示上面会
[DataContract]
public class ReconcileItem
{
[DataMemeber]
public int ID { get; set; }
[DataMember]
public string Description { get; set; }
[DataMember]
public string LastLocation { get; set; }
[DataMember]
public string LastRead { get; set; }
[DataMember]
public string IntendenLocation { get; set; }
[DataMemeber]
public string PickId { get; set; }
[DataMember]
public string OEM { get; set; }
[DataMember]
public string LotNumber { get; set; }
[DataMember]
public string SerialNumber { get; set; }
[DataMember]
public DateTime ExpirationDate { get; set; }
[DataMember]
public string ReconcileReason { get; set; }
[DataMember]
public string RemoveReason { get; set; }
}
如果我想更新这个记录,类被发送到WCF服务,映射到相应的实体框架类,并保存到数据库。为了简化转移,我想我只是把这个类放在WCF项目中,并在MVC项目中引用它。然后我可以在WCF和MVC之间传回类。另外,如果我更新了WCF中的类,那么它将反映在MVC中。这就是集中式的意思。
你的问题有点含糊。你可以向我们介绍一些代码,例如显示你的意思是“集中班”吗? – Steven
@Steven看到编辑,让我知道如果澄清的东西。谢谢! – Will