不知道我明白這個問題。你是否試圖通過一次調用將所有這些信息返回給服務,並想知道具有所有這些關係(以及最可能的循環引用)的此類對象圖的數據契約是什麼?
我可能對這個問題與最新的信息有點混淆,但是我會最後一次嘗試這個。我想,更令人困惑的是對「實體」一詞的提及。這是一個EF問題嗎?如果鏈接是EF的一個問題,我只能假設正在採用代碼優先的方法。將羣組鏈接到標籤的示例看起來像這樣。
public class Group
{
public Group()
{
Tags = new List<Tag>();
}
public string Name { get; set; }
public List<Tag> Tags { get; set; }
}
public class Tag
{
public string Name { get; set; }
}
要查詢具有使用LINQ,你會做這樣的事情特定標籤的所有組:
public List<Group> GetGroups(string TagName)
{
List<Group> groups = (from g in _program.Groups where
(from t in g.Tags where t.Name == TagName select t).Count() > 0
select g).ToList();
return groups;
}
如果您正在使用SOAP,你會在你的客戶端創建一個代理並調用服務應該是這樣的:
string tagName = "rest";
List<Group> groups = proxy.GetGroups(tagName);
如果要創建一個REST API那麼這將是一個簡單的HTTP請求:
http://server/api/GetGroups?tagName=rest
服務將返回表示組的XML或JSON的服務。
您列出了許多我認爲包含您的服務的操作和數據合約的接口。您不一定需要由實體破壞您的服務,並且可能會對將某些操作和數據合同放在哪裏造成混淆。如果服務返回多個實體的信息,則需要在整個服務中重複數據合同。實體中斷服務不會帶來太多好處,只會讓您和服務的任何用戶更加困難。
不知道我明白這個問題。你是否試圖通過一次調用將所有這些信息返回給服務,並想知道具有所有這些關係(以及最可能的循環引用)的此類對象圖的數據契約是什麼? – 2012-04-04 20:13:40
@KevinJunghans:把它作爲答案。 – 2012-04-05 07:55:24