[英]Entity Framework through WCF service (without IIS)
關於這個線程,我之前已經打開了:
我的WCF
服務中有一個簡單的接口,其中一個方法獲得了myRequest
參數
public interface IService
{
[OperationContract]
string MyOperation(myRequest request);
}
當我從客戶端發布數據時,內容類型為application/json
,因此請求主體自動反序列化為myRequest
對象。
myRequest
是WCF
DataContract
:
[DataContract]
public class myRequest
{
string id;
string Name;
[DataMember]
public string Name { get; set; }
[DataMember]
public string Id { get; set; }
}
public string MyOperation(myRequest request)
{
if (request != null) {
Contact contact = new Contact();
contact.Id = Int32.Parse(request.Id);
contact.DisplayName = request.Name;
ContentContext db = new ContentContext();
db.Contacts.Add(contact);
db.SaveChanges();
return "ok";
}
SetResponseHttpStatus(HttpStatusCode.InternalServerError);
return null;
}
最后,托管服務:
public class ProgramBL {
public static void StartServer()
{
ServiceHost streamer = new ServiceHost(typeof(DataStreaming.StreamService));
streamer.Open();
Console.WriteLine("Service up and running at:");
foreach (var ea in streamer.Description.Endpoints)
{
Console.WriteLine(ea.Address);
}
Program._StreamerHost = streamer;
}
}
_StreamerHost
其Program
類的靜態成員。
當我嘗試通過控制台/應用程序托管的WCF rest
服務使用EF時。 當我嘗試執行此操作時,客戶端始終會收到400 Bad Request
響應。
另一件事-我在數據庫模型的解決方案中創建了一個新項目, WCF
服務是另一個項目,因此我在服務項目中添加了數據庫模型項目的引用。 為此,我必須安裝Nufr Entityframe工作包並將其添加到其中。
有什么辦法嗎?
謝謝
好的,所以我解決了這個問題。
我僅在服務項目中安裝了NuGet
Entity框架庫(我在數據庫項目中使用了內置庫)。 在數據庫項目上安裝NuGet
Entity框架+將connectionString
添加到服務App.config
一切似乎都正常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.