WCF ASP.NET MVC中的数据注释实现



我在解决方案中有以下内容(它由4个项目组成)

  1. 基础架构(模型类)
  2. 存储库
  3. 服务(WCF)
  4. Web(演示)

我使用了服务参考向导(添加服务参考)来在我的网络(演示文稿)中使用服务

我在基础架构中有以下运行,可以处理模型类:

infrastucture

using System.Runtime.Serialization;
namespace Infrastructure
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
using DataAnnotationsExtensions;
[Serializable]
[DataContract(IsReference = true)]
public partial class COUNTRIES
{
public COUNTRIES()
{
    this.CITIES = new HashSet<CITIES>();
    this.LGA = new HashSet<LGA>();
    this.STATES = new HashSet<STATES>();
}
[DataMember]
public int COUNTRY_ID { get; set; }
// [DataMember(Name = "Country Code")]
[DataMember]
[Required(ErrorMessage = "Country Code is required")]
[Display(Name = "Country Code")]
[StringLength(2, ErrorMessage = "The {0} must be at least {1} characters long. Plese check again!", MinimumLength = 2)]
//[Index(IsUnique = true)]
[RegularExpression(@"^[a-zA-Z]+$", ErrorMessage = "Use letters only please")]
public string COUNTRY_CODE { get; set; }
[DataMember]
[Required(ErrorMessage = "Country Name is required")]
[Display(Name = "Country Name")]
//[Index(IsUnique = true)]
//[StringLength(50, ErrorMessage = "Too long. Plese check again!")]
[StringLength(50, ErrorMessage = "The {0} must be at least {1} characters long. Plese check again!", MinimumLength = 2)]
[RegularExpression(@"^[a-zA-Z]+$", ErrorMessage = "Use letters only please")]
public string COUNTRY_NAME { get; set; }
[DataMember]
[Display(Name = "Action Status")]
public int ACTION_STATUS { get; set; }
[DataMember]
[Display(Name = "Date Created")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
public Nullable<System.DateTime> CREATED_DATE { get; set; }
[DataMember]
[Display(Name = "Created By")]
public Nullable<int> CREATED_BY { get; set; }
[DataMember]
[Display(Name = "Last Update Date")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
public Nullable<System.DateTime> LAST_UPDATE_DATE { get; set; }
[DataMember]
[Display(Name = "Last Update By")]
public Nullable<int> LAST_UPDATE_BY { get; set; }
[DataMember]
[Display(Name = "Date Deleted")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
public Nullable<System.DateTime> DELETED_DATE { get; set; }
[DataMember]
[Display(Name = "Deleted By")]
public Nullable<int> DELETED_BY { get; set; }

[DataMember]
public virtual ICollection<CITIES> CITIES { internal get; set; }
[DataMember]
public virtual ICollection<LGA> LGA { internal get; set; }
[DataMember]
public virtual ICollection<STATES> STATES { internal get; set; }
 }
 }

然后,为我的服务:WCF

namespace BPP.CCSP.Admin.Services.Services.Concrete
{
[ValidateDataAnnotationsBehavior]
public class CountriesService : ICountriesService
{
//public void DoWork()
//{
//}
 private readonly ICountriesManager _countriesManager;
 public CountriesService(ICountriesManager countriesManager)
 {
    _countriesManager = countriesManager;
 }
 public COUNTRIES GetCountry(Int32 countryID)
 {
    return _countriesManager.Country(countryID);
 }
public IEnumerable<COUNTRIES> GetCountries()
{
    return _countriesManager.Countries();
}
public void AddCountry(COUNTRIES countries)
{
    _countriesManager.AddCountry(countries);
}
public void RemoveCountry(int countryID)
{
    _countriesManager.Country(countryID);
}
}
}

我遇到的问题是数据注释没有实施。

这是流程:基础结构(模型)=> repository => service(wcf)=> web(presention)

请,我如何在演示层(视图)

中实现数据注释和验证

如果要实现数据注释,则应将模型引用到您的演示文稿中,一旦将REF添加到演示层中,则可以验证控制器内部的模型,然后调用WCF服务。

将模型作为共享实体与所有存储库中共享的意志共享(WCF),演示文稿。

希望这对您有帮助

最新更新