У меня есть служба wcf odata, и похоже, что InitializeService не вызывается ...
Код выглядит следующим образом:
[ServiceBehavior(IncludeExceptionDetailInFaults = true)]
public class MyDataService : DataService<MyContext>
{
// This method is called only once to initialize service-wide policies.
public static void InitializeService(DataServiceConfiguration config)
{
// TODO: set rules to indicate which entity sets and service operations are visible, updatable, etc.
// Examples:
config.SetEntitySetAccessRule("*", EntitySetRights.AllRead);
config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
config.UseVerboseErrors = true;
}
// see http://romiller.com/2010/07/19/ef-ctp4-tips-tricks-wcf-data-service-on-dbcontext/
protected override AzureAppContext CreateDataSource()
{
var ctx = base.CreateDataSource();
// Disable proxy object creation.
ctx.Configuration.ProxyCreationEnabled = false;
return ctx;
}
}
При этом я получаю исключениесообщается как:
Сервер обнаружил ошибку при обработке запроса.Сообщение об исключении: «В типе контекста данных« MyContext »имеется верхнее свойство IQueryable« MyEntities », тип элемента которого не является типом объекта.Убедитесь, что свойство IQueryable имеет тип сущности, или укажите атрибут IgnoreProperties в типе контекста данных, чтобы игнорировать это свойство. '.Для получения дополнительной информации см. Журналы сервера
В этом случае MyEntities - это DBSet кода EntityFramework First.
Если я помещаю [IgnoreProperties("MyEntities")]
в контекст, то ошибка выдается наВместо этого устанавливается второе свойство.
Ключ Я думаю: если я добавлю точку останова в метод InitializeService, то не похоже, что он вызывается.
На самом деле не уверен, что происходит сейчас...