积极答复者
自定义类中使用实体对象作为类型的属性,在客户端接收不到

问题
-
整个项目采用DomainService进行客户端与服务器通信,其中一个功能中我定义了下面这样的对象
[Serializable()] [DataContractAttribute(IsReference = false)] public class ASingleStaffData { [DataMember] [Display(Name = @"", AutoGenerateField = false)] public Guid Personnel_ID { get; set; } [DataMember] [Display(Name = @"姓名")] public string xm { get; set; } [DataMember] [Display(Name = @"性别")] public string xb { get; set; } }
/// <summary> /// 人员股东资料 /// </summary> [Serializable()] [DataContractAttribute(IsReference = true )] public class APersonnelShareholderListData { [DataMember] public ASingleStaffData SingleStaffData { get; set; } [DataMember] [Include()] public A_Personnel_Shareholder A_Personnel_Shareholder { get; set; } }
上面A_Personnel_Shareholder类型是实体框架的一个实体对象。
然后我写了一个测试用的DomainService,
public List<APersonnelShareholderListData> MakeAPersonnelShareholderListData(Guid a_id) { List<APersonnelShareholderListData> a = new List<APersonnelShareholderListData>(); a.Add(new APersonnelShareholderListData() { SingleStaffData = new ASingleStaffData() { xm = "aa" }, A_Personnel_Shareholder = new A_Personnel_Shareholder() { cze_zc = 123, jc = "ss" } }); return a; }
然后在客户端进行调用
DocumentGenerationDS context = new DocumentGenerationDS(); InvokeOperation io = context.MakeAPersonnelShareholderListData(_A_ID); io.Completed += (o, e) => { List<APersonnelShareholderListData> res = io.Value as List<APersonnelShareholderListData>; foreach (var item in res) { ObjectList.Add(item); } };
返回的结果(item)里面 ASingleStaffData 对象的数据在客户端出现了A_Personnel_Shareholder 对象的数据就像消失了一样,连属性都没有。
客户端获得的对象的结构成了下面的样子了
public class APersonnelShareholderListData
{
public ASingleStaffData SingleStaffData { get; set; }
}太诡异了。谁知道原因啊,求救
- 已编辑 超然 2011年11月2日 6:49
2011年11月2日 3:22
答案
全部回复
-
检查发现在自动生成的“DDIMWeb2.SLUI.Web.g.cs”文件中APersonnelShareholderListData的定义就没有A_Personnel_Shareholder 对象,怎么回事啊,命名服务器那里有啊,为什么给屏蔽了。
/// <summary> /// “APersonnelShareholderListData”类。 /// </summary> [DataContract(Namespace="http://schemas.datacontract.org/2004/07/DDIMWeb2.DataObject.DocumentGeneration")] public sealed partial class APersonnelShareholderListData : ComplexObject { private ASingleStaffData _singleStaffData; #region 可扩展性方法定义 /// <summary> /// 一旦初始化完成便从构造函数中调用此方法, /// 还可将此方法用于以后的对象设置。 ///</summary> partial void OnCreated(); partial void OnSingleStaffDataChanging(ASingleStaffData value); partial void OnSingleStaffDataChanged(); #endregion /// <summary> /// 初始化 <see cref="APersonnelShareholderListData"/> 类的新实例。 /// </summary> public APersonnelShareholderListData() { this.OnCreated(); } /// <summary> /// 获取或设置“SingleStaffData”值。 /// </summary> [DataMember()] [Display(AutoGenerateField=false)] public ASingleStaffData SingleStaffData { get { return this._singleStaffData; } set { if ((this._singleStaffData != value)) { this.OnSingleStaffDataChanging(value); this.RaiseDataMemberChanging("SingleStaffData"); this.ValidateProperty("SingleStaffData", value); this._singleStaffData = value; this.RaiseDataMemberChanged("SingleStaffData"); this.OnSingleStaffDataChanged(); } } } }
2011年11月2日 4:47