C# 实体框架4.1的代码优先数据服务中未解析实体

C# 实体框架4.1的代码优先数据服务中未解析实体,c#,entity-framework-4,ef-code-first,C#,Entity Framework 4,Ef Code First,我正在使用EntityFramework4.1使用代码优先的POCO对象创建一个数据服务。当我创建MyEntityContext实例并直接访问它时,我可以很好地访问数据,但是当我尝试通过HTTP访问DataService时,它会出现以下错误: System.ArgumentException: The given name 'Department' was not found in the entity sets. 我试过各种各样的方法,但还是会遇到同样的问题。不确定会出什么问题 部门是我当前

我正在使用EntityFramework4.1使用代码优先的POCO对象创建一个数据服务。当我创建MyEntityContext实例并直接访问它时,我可以很好地访问数据,但是当我尝试通过HTTP访问DataService时,它会出现以下错误:

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;
    }
}
公共类MyEntityContext:DbContext
{
公共MyEntityContext(字符串connStr)
:base(connStr)
{
}
公共MyEntityContext()
{
}
公共数据库集部门{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;
    }
}
[服务行为(IncludeExceptionDetailInFaults=true)]
公共类MyDataService:DataService
{
公共静态void InitializeService(DataServiceConfiguration配置)
{
config.DataServiceBehavior.MaxProtocolVersion=DataServiceProtocolVersion.V2;
config.UseVerboseErrors=true;
config.SetEntitySetAccessRule(“Department”,EntitySetRights.AllRead);
}
受保护的重写MyEntityContext CreateDataSource()
{
MyEntityContext ctx=新的MyEntityContext(
Utility.generateConstr
);
返回ctx;
}
}
它说在实体集中找不到“Department”,并且您的实体集名称是“Departments”,所以请尝试将调用复数化