C# 执行查询时出错:Telerik.OpenAccess.RT.sql.SQLException:无效的对象名';员工';
我在asp.net C#web应用程序中使用Telerik Open Access ORM。 在我的应用程序中,我将数据库中名为“Person”的表实体映射为基类,并创建了名为“Employee”的子域类。 然后,我将子类的垂直继承应用于基类,并对Employee子类使用“默认映射” 在查询两个基类/子类时,我得到一个错误: 执行查询时出错:Telerik.OpenAccess.RT.sql.SQLException:对象名“Employee”无效 以下是从上下文添加到查询的行:C# 执行查询时出错:Telerik.OpenAccess.RT.sql.SQLException:无效的对象名';员工';,c#,asp.net,telerik,telerik-open-access,C#,Asp.net,Telerik,Telerik Open Access,我在asp.net C#web应用程序中使用Telerik Open Access ORM。 在我的应用程序中,我将数据库中名为“Person”的表实体映射为基类,并创建了名为“Employee”的子域类。 然后,我将子类的垂直继承应用于基类,并对Employee子类使用“默认映射” 在查询两个基类/子类时,我得到一个错误: 执行查询时出错:Telerik.OpenAccess.RT.sql.SQLException:对象名“Employee”无效 以下是从上下文添加到查询的行:
using (EntitiesModel1 obj = new EntitiesModel1())
{
List<Employee> lstEmp = obj.Employees.ToList();
GridView1.DataSource = lstEmp;
GridView1.DataBind();
}
使用(EntitiesModel1 obj=new EntitiesModel1())
{
List lstEmp=obj.Employees.ToList();
GridView1.DataSource=lstEmp;
GridView1.DataBind();
}
请提供帮助。当您将继承策略指定为“垂直”时,这意味着每个类都有自己的物理表。因此,您会得到“Employee”表丢失的错误 如果要在单个表“Person”中存储Person和Employee的实例,则需要使用默认的继承策略,即“Flat” 如果您想创建额外的“Employee”表,那么您可以使用模式处理程序API并让OpenAccess生成相应的ddl
var context = new EntityDiagram();
var schemaHandler = context.GetSchemaHandler();
var ddl = schemaHandler.CreateUpdateDDLScript(null);
if(string.IsNullOrEmpty(ddl) == false)
schemaHandler.ExecuteDDLScript(ddl);
当您将继承策略指定为“垂直”时,这意味着每个类都有自己的物理表。因此,您会得到“Employee”表丢失的错误 如果要在单个表“Person”中存储Person和Employee的实例,则需要使用默认的继承策略,即“Flat” 如果您想创建额外的“Employee”表,那么您可以使用模式处理程序API并让OpenAccess生成相应的ddl
var context = new EntityDiagram();
var schemaHandler = context.GetSchemaHandler();
var ddl = schemaHandler.CreateUpdateDDLScript(null);
if(string.IsNullOrEmpty(ddl) == false)
schemaHandler.ExecuteDDLScript(ddl);
你能给我一些密码吗?很难对你们没见过的东西感到惊讶。所以Employee继承自Person,而不是一个实际的表,对吗?是的。Employee继承自Person表。Person是实际表,Employee不是物理表。您能给出一些代码吗?很难对你们没见过的东西感到惊讶。所以Employee继承自Person,而不是一个实际的表,对吗?是的。Employee继承自Person表。Person是实际表,Employee不是物理表。