Я делаю DataService с Entity Framework 4.1, используя объекты Code First POCO. Я могу получить доступ к данным в порядке, когда я создаю экземпляр MyEntityContext и получаю к нему доступ напрямую, однако, когда я пытаюсь получить доступ к DataService через HTTP, происходит сбой со следующей ошибкой:
System.ArgumentException: The given name 'Department' was not found in the entity sets.
Я пробовал все виды вещей, но продолжаю возвращаться к той же самой проблеме. Не уверен, что может быть не так.
Отдел - единственная сущность, которую я сейчас картирую. Он определяется следующим образом:
[Table("tb_department")]
public class Department
{
[Key]
[Column("department_no", TypeName = "nvarchar")]
public string ID { get; set; }
[Column("department_name", TypeName = "nvarchar")]
public string Name { get; set; }
}
Мой контекст данных выглядит так:
public class MyEntityContext : DbContext
{
public MyEntityContext(string connStr)
: base(connStr)
{
}
public MyEntityContext()
{
}
public DbSet<Department> Departments { get; set; }
}
А мой сервис выглядит так:
[ServiceBehavior(IncludeExceptionDetailInFaults = true)]
public class MyDataService : DataService<MyEntityContext>
{
public static void InitializeService(DataServiceConfiguration config)
{
config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
config.UseVerboseErrors = true;
config.SetEntitySetAccessRule("Department", EntitySetRights.AllRead);
}
protected override MyEntityContext CreateDataSource()
{
MyEntityContext ctx = new MyEntityContext(
Utility.GenerateConnStr
);
return ctx;
}
}