簡體   English   中英

通過WCF服務的實體框架(無IIS)

[英]Entity Framework through WCF service (without IIS)

關於這個線程,我之前已經打開了:

使用SQL Server存儲過程存儲WCF休息請求數據

我的WCF服務中有一個簡單的接口,其中一個方法獲得了myRequest參數

public interface IService
{
    [OperationContract]
    string MyOperation(myRequest request);
}

當我從客戶端發布數據時,內容類型為application/json ,因此請求主體自動反序列化為myRequest對象。

myRequestWCF 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;
        }
}

_StreamerHostProgram類的靜態成員。

當我嘗試通過控制台/應用程序托管的WCF rest服務使用EF時。 當我嘗試執行此操作時,客戶端始終會收到400 Bad Request響應。

另一件事-我在數據庫模型的解決方案中創建了一個新項目, WCF服務是另一個項目,因此我在服務項目中添加了數據庫模型項目的引用。 為此,我必須安裝Nufr Entityframe工作包並將其添加到其中。

有什么辦法嗎?

謝謝

好的,所以我解決了這個問題。

我僅在服務項目中安裝了NuGet Entity框架庫(我在數據庫項目中使用了內置庫)。 在數據庫項目上安裝NuGet Entity框架+將connectionString添加到服務App.config一切似乎都正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM