1

我在我的 asp.net C# Web 应用程序中使用 Telerik Open Access ORM。在我的应用程序中,我将数据库中名为“Person”的表实体映射 为基类,并创建了一个名为“Employee”的子域类。然后我将子类的垂直继承应用到基类,并为员工子类使用“默认映射”。

在查询 Base/Sub 类时出现错误:

执行查询时出错:Telerik.OpenAccess.RT.sql.SQLException:对象名称“员工”无效。

这些是添加到从上下文查询的行:

       using (EntitiesModel1 obj = new EntitiesModel1())
        {
            List<Employee> lstEmp = obj.Employees.ToList();
          GridView1.DataSource = lstEmp;
          GridView1.DataBind();
        }

请帮忙。

4

1 回答 1

1

当您将继承策略指定为“垂直”时,这意味着每个类都有自己的物理表。因此,您会收到缺少“员工”表的错误。

如果要将 Person 和 Employee 的实例存储在单个表“Person”中,则需要使用默认的继承策略,即“Flat”。

如果您想创建额外的“Employee”表,那么您可以使用 Schema Handler API 并让 OpenAccess 生成适当的 ddl。

var context = new EntityDiagram();
var schemaHandler = context.GetSchemaHandler();
var ddl = schemaHandler.CreateUpdateDDLScript(null);
if(string.IsNullOrEmpty(ddl) == false)
   schemaHandler.ExecuteDDLScript(ddl);
于 2013-02-14T11:26:30.223 回答