WCF服务和Linq

时间:2014-11-17 16:38:09

标签: linq wcf

我在WCF服务中使用LINQ。我试图在网格中列出我的所有电影,但我的查询无法正常工作。 谁知道为什么?

这是查询:

public List<MovieInfo> GetAllMovies()
    {          
            var queryResult = (from x in db.MovieInfos
                               select x);
            return queryResult.ToList();                   
    }

这是webconfig:

<configuration>
  <connectionStrings>
    <add 
      name="dmaa0913Sem3_1ConnectionString" 
      connectionString="Data Source=dbname;Initial Catalog=dataname;Persist Security Info=True;User ID=username;Password=password"
      providerName="System.Data.SqlClient" />
  </connectionStrings>

  <appSettings>
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
  </appSettings>

  <system.web>
    <compilation debug="true" targetFramework="4.5" />
    <httpRuntime targetFramework="4.5"/>
  </system.web>

  <system.serviceModel>    
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <!-- To avoid disclosing metadata information, set the values below to false before deployment -->
          <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
          <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
          <serviceDebug includeExceptionDetailInFaults="false"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>

    <protocolMapping>
        <add binding="basicHttpsBinding" scheme="https" />
    </protocolMapping>

    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
  </system.serviceModel>

  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
    <!--
        To browse web app root directory during debugging, set the value below to true.
        Set to false before deployment to avoid disclosing web app folder information.
      -->
    <directoryBrowse enabled="true"/>
  </system.webServer>
</configuration>

这是我得到的错误:

  

无法调用该服务。可能的原因:服务处于脱机状态   或无法进入;客户端配置与   代理;现有代理无效。请参阅堆栈跟踪   更多详情。您可以尝试通过启动新代理进行恢复,然后进行恢复   默认配置或刷新服务。

该服务在线,因为我使用的是WCF测试客户端。

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题。我用来从数据库中提取数据的查询我称之为lazyloading。如果需要提取的数据很复杂,WCF就无法使用这种查询。它是关于WCF服务如何序列化服务的。所以我做的工作就是进入Linq datacontex并设置。序列化模式为单向。这对我有用。