我想從我的wcf服務返回一個自定義類。我的代碼在下面,出現錯誤。WCF數據表關係
服務器在處理請求時遇到錯誤。異常消息是'DealerModel'類型的屬性'UserList'不是有效的屬性。不支持其類型爲原始類型或複雜類型集合的屬性。'。查看服務器日誌獲取更多詳細信異常棧跟蹤是:
我想要得到像下面這樣的json值;
<Dealer>
<DealerName/>
<DealerAdress/>
<Users>
<FirstName/>
<LastName/>
<FirstName/>
<LastName/>
</Users>
</Dealer>
我的代碼
using System;
using System.Linq;
using System.Data.Objects;
using System.Data.Objects.DataClasses;
public class DataModel:IDisposable
{
private xModel.xEntities _dbContext = new xSocialModel.xEntities();
public DataModel()
{
Users = from e in _dbContext.Users
select new UserModel
{
UserID = e.UserID,
Firstname = e.Firstname,
Lastname = e.Lastname
};
Dealers = from e in _dbContext.Dealers
select new DealerModel
{
DealerID = e.DealerID,
DealerName = e.Name,
DealerAddress = e.Address,
UserList = e.Users
};
}
/// <summary>Returns the list of users.</summary>
public IQueryable<UserModel> Users { get; private set; }
public IQueryable<DealerModel> Dealers { get; private set; }
void IDisposable.Dispose()
{
_dbContext.Dispose();
}
}
using System;
using System.Data.Services.Common;
using System.Runtime.Serialization;
using System.Collections.Generic;
using System.ServiceModel;
using System.Data.Objects.DataClasses;
using System.Linq;
/// <summary>Represents a User.</summary>
[DataServiceKey("UserID")]
public class UserModel
{
public Guid UserID { get; set; }
public string Firstname { get; set; }
public string Lastname { get; set; }
}
[DataServiceKey("DealerID")]
public class DealerModel
{
public Guid DealerID { get; set; }
public string DealerName { get; set; }
public string DealerAddress { get; set; }
**public EntityCollection<xModel.User> UserList { get; set; }**
}
非常感謝您的回答。是的,我正在使用實體框架。我已經嘗試過複雜的類型,但沒有運氣。只有像int,字符串等基本類型我必須用屬性填充我的列表:(.sql關係返回一個實體集合是e.user,但我無法弄清楚如何使用並顯示它 – 2012-07-30 14:18:32
你的用戶對象是什麼包含,當你收到你的用戶對象時,是否有可能創建第二個回調服務器? – muck41 2012-07-30 14:26:40
或者你是否考慮過在你的OData查詢中使用$ expand調用?如果你的實體之間有相互關係,想想你的問題的外觀 – muck41 2012-07-30 14:28:02