Объект не разрешен в коде сначала DataService с Entity Framework 4.1 - PullRequest
2 голосов
/ 22 июля 2011

Я делаю 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;
    }
}

1 Ответ

2 голосов
/ 22 июля 2011

Ну, это говорит, что «Отдел» не был найден в наборах сущностей, а ваше имя набора сущностей - «Отделы», поэтому попробуйте сделать множественный вызов.

...