0

另一个相当大的标题..

首先是一些基本信息:使用 .NET 4 / EF 4.x / visual studio 2010 sp1。

我有一个基于 WCF REST 的服务,它使用 JSON 作为数据传输。我已经使用了来自 Steve Mitchelotti http://geekswithblogs.net/michelotti/archive/2010/08/21/restful-wcf-services-with-no-svc-file-and的示例(当然还有其他人对此进行了描述)-no-config.aspx

我有一个非常基本的模型/类如下:

public class DiaryEvent
{ 
    public Int64 ID { get; set; }
    public Int64 CalendarResourceID { get; set; }
    public string Subject { get; set; }
    public string Location { get; set; }
    public DateTime Start { get; set; }
    public DateTime End { get; set; }
    public string Description { get; set; }
    public string Colour { get; set; }
    public string AllDay { get; set; }
}

现在,再次以 Steve 的最小 WCF/REST 示例为例,我有一个定义方法/数据服务合同的接口,如下所示:

[ServiceContract] interface IDiaryService { [OperationContract] //List GetEvents(); 字符串 GetEvents();

[OperationContract]
DiaryEvent GetEvent(string id);

[OperationContract]
void InsertEvent(DiaryEvent NewDiary);

[OperationContract]
string UpdateEvent(string id, DiaryEvent UpdatedEventData);

}

我想我也可以将其他 WebGet/WebInvoke 装饰内容添加到界面中,但现在看起来就是这样。

然后到实际的服务代码,现在我使用一个基本的 list<> 来管道 getevents 方法上的一些测试数据,如下所示:

WebGet(UriTemplate = "GetEvents", ResponseFormat=WebMessageFormat.Json)
public DiaryEvent GetEvents()
{
    List<DiaryEvent> EventList = new List<DiaryEvent>();
    EventList.Add(new DiaryEvent { AllDay = "false", ID = 1, CalendarResourceID = 1, Start = new DateTime(2012, 07, 18, 15, 0, 0), End = new DateTime(2012, 07, 18, 17, 0, 0), Location = "Golf Club 1", Colour = "#FEDEFF", Description = "Event 1 Description", Subject = "Event 1" });
    EventList.Add(new DiaryEvent { AllDay = "false", ID = 2, CalendarResourceID = 2, Start = new DateTime(2012, 07, 19, 15, 0, 0), End = new DateTime(2012, 07, 18, 17, 0, 0), Location = "Golf Club 1", Colour = "#FEDEFF", Description = "Event 2 Description", Subject = "Event 2" });
    EventList.Add(new DiaryEvent { AllDay = "false", ID = 3, CalendarResourceID = 3, Start = new DateTime(2012, 07, 20, 15, 0, 0), End = new DateTime(2012, 07, 18, 17, 0, 0), Location = "Golf Club 1", Colour = "#FEDEFF", Description = "Event 3 Description", Subject = "Event 3" });

    return EventList;
    //return JsonConvert.SerializeObject(EventList);
}

(请注意 stackoverflow 在装饰格式周围的 [ ] 有问题!)

显然,上面是一个非常基本的示例,用于将一些 JSON 数据返回给客户端。

我的意思是我想使用 EF 4.x 来连接我的数据库(表已经创建,所以我首先选择数据库..)。我只需要一些指导,如何最好地编写连接代码来填充我的 DiaryEvents 模型与该 EF 数据之间的关系?

如果有人可以为我指出一些示例/想法的正确方向吗?

非常感激!大卫。

4

2 回答 2

1

我认为你应该从这个代码项目示例开始。

http://www.codeproject.com/Articles/127395/Implementing-a-WCF-Service-with-Entity-Framework

于 2012-07-19T11:43:39.813 回答
-1
ServiceContract]
    public interface IRestServiceImpl
    {
        [OperationContract]
        [System.ServiceModel.Web.WebInvoke(Method = "GET",ResponseFormat=System.ServiceModel.Web.WebMessageFormat.Xml, BodyStyle =System.ServiceModel.Web.WebMessageBodyStyle.Wrapped, UriTemplate = "xml/{id}")]
        string XMLData(string id);
        [OperationContract]
        [System.ServiceModel.Web.WebInvoke(Method = "GET", ResponseFormat = System.ServiceModel.Web.WebMessageFormat.Json, BodyStyle = System.ServiceModel.Web.WebMessageBodyStyle.Wrapped, UriTemplate = "json/{id}")]
        string JSONData(string id);
    }

public class RestServiceImpl : IRestServiceImpl
    {
        #region IRestService Members
        public string XMLData(string id)
        {
            return "You Request Porduct" + ":"+id;

        }
        public string JSONData(string id)
        {
            return "Yor Request Product" +":"+ id;
        }
        #endregion
    }
于 2013-05-05T14:45:59.420 回答