繁体   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