我已經在我的應用程序中創建了WCF服務,涉及LINQ概念,但我無法理解如何將該服務調用到我的網頁。可以有人告訴我如何調用服務我已經爲我的申請創建了詳細的步驟以及一些示例編碼以便我可以繼續進行下去?提前致謝。WCF服務隨LINQ to SQL在asp.net
回答
下面是一個示例,我將它們放在一起展示如何調用WCF RESTful服務,該服務使用jQuery的$.ajax
函數從基本Web頁面返回LINQ的結果。無論您是從LINQ返回對象還是從LINQ到SQL,基本概念都應該是相同的 - 我使用基本的LINQ到對象來說明這一點。
這裏的WCF服務(Service2.svc.cs):
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode=AspNetCompatibilityRequirementsMode.Allowed)]
public class Service2
{
public static List<string> myValues = new List<string>()
{
"Apple", "Orange", "Apricot", "Banana", "Grape", "Peach", "Plum"
};
[OperationContract]
[WebGet(UriTemplate="Filter?q={filter}",
ResponseFormat=WebMessageFormat.Json)]
public IEnumerable<string> FilterList(string filter)
{
var items = from v in myValues
where v.StartsWith(filter)
select v;
return items;
}
這是一個使用LINQ返回只在我List<string>
與傳遞的字母開頭的那些元素的簡單服務所以如果你通過'P',你得到「桃子」和「梅花」作爲IEnumerable<string>
返回。
此服務設置爲由於使用WebGet
屬性而從GET請求返回數據。這表明此方法只能通過HTTP GET請求調用。服務方法設置爲以JSON格式返回數據(比XML更流線,但不可擴展)。由於WebGet
屬性的ResponseFormat=WebMessageFormat.Json
設置,所以這樣設置。
當我調用此方法從我的應用程序(!或瀏覽器),並通過在字母「P」爲我的濾波器參數,我到客戶端的響應是這樣的(通過小提琴手): ["Peach","Plum"]
這是返回的簡單的JSON註釋數組。然後我可以使用這個返回的數據來做任何事情。
另請注意,我並不需要將IEnumberable<string>
轉換爲JSON格式 - WCF的內置JSON序列化程序對我來說是這樣的。
編輯:你可以代替我簡單的LINQ到對象與LINQ到SQL查詢,並會與其他一切不變:
public IEnumerable<string> FilterList(string filter)
{
DbTest1DataContext context = new DbTest1DataContext();
var names = from n in context.Attendees
where n.Name.StartsWith(filter)
select n.Name;
return names;
}
我DbTest1DataContext
是我的LINQ-TO- SQL上下文指向具有帶名稱列的參加者表的數據庫。此答案中的其他內容保持不變(web.config,HTML,jQuery等)。
這裏是我的web.config文件服務(的web.config):
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior name="WcfRestService1.Service2AspNetAjaxBehavior">
<webHttp />
</behavior>
</endpointBehaviors>
</behaviors>
<services>
<service name="WcfRestService1.Service2">
<endpoint address="" behaviorConfiguration="WcfRestService1.Service2AspNetAjaxBehavior"
binding="webHttpBinding" contract="WcfRestService1.Service2" />
</service>
</services>
</system.serviceModel>
這是非常標準的,超出現成的配置除了端點的行爲,我已經設置使用webHttp
。
這是我的客戶端代碼(TestService。HTM):
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#sendit").click(function (e) {
e.preventDefault();
$.ajax({
url: "Service2.svc/Filter",
data: { q: $("#source").val() },
type: "GET",
dataType: "json",
success: function (data) {
var theResults = $("#results");
theResults.empty();
$.each(data, function (i, item) {
theResults.append("<li>" + item + "</li>");
});
},
error: function (x, t, m) { alert(t + " :: " + m); }
});
});
});
</script>
</head>
<body>
<div>
Starts with: <input id="source" type="text" />
<button id="sendit">Send It</button>
</div>
<div>
<ul id="results">
</ul>
</div>
</body>
</html>
這是一個非常簡單的頁面,需要從一個文本框(ID =源),並單擊按鈕(ID = sendit)後的輸入,它會調用我的WCF RESTful服務。我爲此使用了jQuery,但是您可以看到我將過濾器值傳遞給$.ajax
調用的數據屬性(data: { q: $("#source").val() }
),我將其設置爲GET請求(type: "GET"
),因爲這就是我配置了服務。我期望得到的數據類型是JSON(dataType: "json"
)。如果我的服務調用成功,我調用我的成功處理函數,然後將返回的字符串添加到<ul>
元素中。
希望這會爲您從LINQ查詢中檢索一組值並將其發送到基於Web的客戶端提供一個很好的起點。請讓我知道是否有更多問題,我會相應地更新我的答案。
希望這會有所幫助!
- 1. LINQ to SQL ASP.net
- 2. Linq to SQL Web服務XML
- 3. 在使用DataContextFactory的WCF服務中管理Linq to SQL Datacontext
- 4. sql to linq asp.net relations
- 5. WCF LINQ to SQL的錯誤
- 6. 在ASP.NET/C#/ Linq-to-SQL中構建Web服務
- 7. Linq-to-SQL和WCF服務 - 數據傳輸對象
- 8. wcf服務不返回linq-to-sql表的父和子記錄?
- 9. 如何從WCF服務返回一個LINQ to SQL Table實體?
- 10. WCF和Linq服務
- 11. LINQ在WCF服務(的DomainService)
- 12. Restful WCF服務和LINQ
- 13. LINQ to SQL Datacontext映射到WCF DataContract
- 14. 訂貨與LINQ to SQL的C#.NET WCF
- 15. WCF服務大Linq響應
- 16. WCF服務:ASP.NET緩存或SQL
- 17. 爲什麼ASP.NET MVC收藏Linq to SQL over LINQ to Entities?
- 18. 中的LINQ WCF服務
- 19. 無法連接到LINQ to SQL網頁上的SQL服務器
- 20. 服務器無法恢復事務。 Linq-To-SQL
- 21. 爲什麼在Linq to SQL中使用Web服務?
- 22. LINQ-to-SQL DataContext在某些服務器上爲空
- 23. 在一臺服務器上LINQ to SQL超時而不是其他服務器
- 24. LinQ to SQL:Windows服務中的InvalidOperationException
- 25. LINQ to SQL ASP.NET MVC中的結果DuplicateKeyException
- 26. asp.net -linq to sql簡單問題
- 27. ASP.NET ReportViewer和Linq To Sql問題
- 28. ASP.Net MVC3 - Linq to SQL或存儲過程?
- 29. LINQ to SQL中的ASP.NET MVC查找表
- 30. ASP.NET MVC 2驗證LINQ to SQL
你想從類背後的代碼或瀏覽器(AJAX)調用服務嗎?你在哪裏主持服務? – 2010-08-26 12:38:46