[英]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.