C# 实体框架4.1的代码优先数据服务中未解析实体
我正在使用EntityFramework4.1使用代码优先的POCO对象创建一个数据服务。当我创建MyEntityContext实例并直接访问它时,我可以很好地访问数据,但是当我尝试通过HTTP访问DataService时,它会出现以下错误: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. 我试过各种各样的方法,但还是会遇到同样的问题。不确定会出什么问题 部门是我当前
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”,所以请尝试将调用复数化