I am trying to get a list of objects from the Entity Framework through WCF, but I get the following exception:
An error occurred while trying to serialize the http://tempuri.org/:GetAllResult parameter. InnerException message was "Type 'System.Data.Entity.DynamicProxies.TestObject_240F2B681A782799F3A0C3AFBE4A67A7E86083C3CC4A3939573C5410B408ECCE' with data contract name 'TestObject_240F2B681A782799F3A0C3AFBE4A67A7E86083C3CC4A3939573C5410B408ECCE: http://schemas.datacontract.org/2004/07/System.Data.Entity.DynamicProxies ' is not expected to Consider using a DataContractResolver or add any types that are not statically known to the list of known types — for example, using the KnownTypeAttribute attribute or by adding them to the list of known types passed to the DataContractSerializer. 'For more information, see InnerException.
I used WCF in the past, but never used the Entity Framework. I have all my entities created through the Entity Framework and are annotated with the [DataContract] and [DataMember] attributes. I do not have navigation properties for any of my objects.
The GetAll () method is called in the abstract service class:
[ServiceContract] public interface IService<T> { [OperationContract] List<T> GetAll(); }
And I use ChannelFactory to call my implementation:
Binding binding = new NetTcpBinding(); EndpointAddress endpointAddress = new EndpointAddress("net.tcp://localhost:8081/" + typeof(TestObjectService).Name); using (ChannelFactory<ITestObjectService> channel = new ChannelFactory<ITestObjectService>(binding, endpointAddress)) { ITestObjectService testObjectService = channel.CreateChannel(); testObjects = testObjectService.GetAll(); channel.Close(); }
I post it as such:
Type type = typeof(TestObjectService); ServiceHost host = new ServiceHost(type, new Uri("http://localhost:8080/" + type.Name), new Uri("net.tcp://localhost:8081/" + type.Name)); host.Open();
When using debugging, it finds objects from the database, however it does not return objects.
Any ideas on where I might be wrong?
Brandon Jul 30 '10 at 15:20 2010-07-30 15:20
source share