Как вернуть Entity Framework Entity из веб-виджета службы данных WCF? - PullRequest
0 голосов
/ 12 ноября 2010

Я пытаюсь вернуть простой объект (который был создан в EDMX с EF 4) через операцию WebGet в моей службе данных WCF. Я могу видеть объект, но свойство, являющееся объектом, не заполняется (в данном случае DisplaySize пусто, даже если я его установил. Я планирую сделать вызов базы данных, чтобы заполнить его из не -EF сгенерированная таблица, потому что мы еще не перенесли все данные в новую схему (пожалуйста, сделайте вывод о типах объектов из этого)

[WebGet]
    [SingleResultAttribute]
    public Display GetDisplay(int displayId)
    {
        Display foundDisplay = new Display();           
        foundDisplay.DisplaySize = new DisplaySize() { Id = 1, Width = 1024, Height = 768, Dimensions = "1024 X 768" };
        foundDisplay.Id = displayId;
        return foundDisplay;
    }

URL-адрес, который я использую: http://localhost:1354/services/EDMDataService.svc/GetDisplay?displayId=1 XML от звонка:

    <?xml version="1.0" encoding="utf-8" standalone="yes"?>
<entry xml:base="http://localhost:1354/services/EDMDataService.svc/" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">
  <id>http://localhost:1354/services/EDMDataService.svc/Displays(1)</id>
  <title type="text"></title>
  <updated>2010-11-12T19:34:29Z</updated>
  <author>
    <name />
  </author>
  <link rel="edit" title="Display" href="Displays(1)" />
  <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/DisplaySize" type="application/atom+xml;type=entry" title="DisplaySize" href="Displays(1)/DisplaySize" />
  <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Address" type="application/atom+xml;type=entry" title="Address" href="Displays(1)/Address" />
  <category term="DataModels.Display" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
  <content type="application/xml">
    <m:properties>
      <d:DisplaySizeID m:type="Edm.Int32">0</d:DisplaySizeID>
      <d:DisplayTypeID m:type="Edm.Int32">0</d:DisplayTypeID>
      <d:TimeZoneID m:type="Edm.Int32" m:null="true" />
      <d:Facing m:null="true" />
      <d:PanelNumber m:type="Edm.Int32" m:null="true" />
      <d:DisplayTemplateTypeID m:type="Edm.Int32">1</d:DisplayTemplateTypeID>
      <d:DisplayGUID m:null="true" />
      <d:RegistrationKey m:null="true" />
      <d:FirmwareVersion m:null="true" />
      <d:Id m:type="Edm.Int32">1</d:Id>
      <d:Base m:type="DataModels.Base">
        <d:Title>test</d:Title>
        <d:Summary>Description would go here</d:Summary>
        <d:DataCenterSiteID m:type="Edm.Int32">0</d:DataCenterSiteID>
      </d:Base>
    </m:properties>
  </content>
</entry>

1 Ответ

0 голосов
/ 13 ноября 2010

Просто добавьте & $ expand = DisplaySize к своему URL, и ответ также будет содержать расширенную сущность.

...