Wil*_*ill 5 c# asp.net-mvc wcf asp.net-mvc-4
ASP.NET | MVC 4 | C#| WCF
我使用WCF Web服务作为从表示层(MVC)到数据层(实体)的中介.为了简化将数据模型数据从MVC移动到Web服务,我想我会在WCF中使用代理类,因此会有一个集中式类.不幸的是,这导致模型中属性上的MVC装饰丢失.是否有一种很好的方法可以创建一个集中式类用于MVC视图的模型,还可以作为WCF服务的传输方法?
作为一种选择,我想到了自动化,但我认为这需要两个相同的类.一个在MVC端,一个在WCF端.如果某个类中的属性发生变化,那么仍需要我对双方进行更改.
任何其他建议将不胜感激.谢谢!
编辑::示例
这是包含记录表的页面的模型
public class ReconcileModel
{
#region PROPERTIES
public List<ReconcileItem> ReconcileItems { get; set;}
#endregion
#region CONSTRUCTORS
public ReconcileModel()
{
ReconcileItems = new List<ReconcileItem>();
}
#endregion
}
Run Code Online (Sandbox Code Playgroud)
这是一个表示该表中每条记录的类.
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
}
Run Code Online (Sandbox Code Playgroud)
上面类的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; }
}
Run Code Online (Sandbox Code Playgroud)
如果我想更新此记录,则将该类发送到WCF服务,映射到适当的实体框架类,并保存到数据库.为了简化传输,我想我会把这个类放在WCF项目中并在MVC项目中引用它.然后我可以在WCF和MVC之间传回这个类.此外,如果我在WCF中更新了类,那么它将反映在MVC中.这就是集中化的意思.
就像 Adrian 一样,我怀疑您是否真的需要在数据库和 MVC 服务之间使用 WCF 服务。对于与数据库通信的客户端应用程序(Win Forms、WPF)来说,这是更可能的情况。我目前正在开发一个 Win Forms 项目,我们使用 WCF 作为中间层,并执行以下操作:
最重要的是我们做:
IValidator<T>抽象(某种形式)以允许服务器或客户端特定的验证(通过将实现放置在业务层或客户端应用程序中)。| 归档时间: |
|
| 查看次数: |
4890 次 |
| 最近记录: |