[DataContract]
public enum GetMailType
{
[EnumMember]
DDA=1,
[EnumMember]
KVK=2,
[EnumMember]
BTW=3,
}
public enum GetMailType
{
[EnumMember]
DDA=1,
[EnumMember]
KVK=2,
[EnumMember]
BTW=3,
}
我们有一个类。放在数据库当中用的
[DataContract(IsReference = true)]
public class UnaddressConfig
{
{ get; set; }
[NotMapped]
[DataMember]
public GetMailType GetMailType
{
get { return (GetMailType)GetMailTypeID; }
set { GetMailTypeID = (int)value; }
}
} public class UnaddressConfig
{
[DataMember]
public int GetMailTypeID { get; set; }
[NotMapped]
[DataMember]
public GetMailType GetMailType
{
get { return (GetMailType)GetMailTypeID; }
set { GetMailTypeID = (int)value; }
}
我们系统当中有一个方法 Save(UnaddressConfig config)
客户端添加WCF引用后 调用这个方法的时候可能会造成。
config.GetMailType=GetMailType.DDA
在服务端我们会发现在这个值可能是0
为什么会这样呢?
因为
GetMailTypeID 这个值就是0.
解决的方法是把 GetMailTypeID的Atribute
[DataMember]
去掉。 因为我们客户端实际也不需要这个。只是数据库哪边需要。(如果 Entity framework哪边直接支持枚举就更好了).