我正在使用 .Net 4.8 Framework 和 System.Data.Linq 包。
我正在尝试将数据从数据库映射到对象(子)。
ChildClass继承ParentClass,所以在我看来它也应该能够使用ParentClass的Properties。但我无法实现它。
到目前为止我已经尝试过以下代码
public class TestClass
{
public void GetDataList()
{
try
{
using (var db = new DataContext(connectionString))
{
string strSQL = "select 1 as ID, 'test' as Name, 5 as ChildID";
var ic1 = db.ExecuteQuery<ChildClass>(strSQL);
}
}
catch (Exception ex)
{
}
}
}
public class ParentClass
{
public int ID { get; set; }
public string Name { get; set; }
}
public class ChildClass : ParentClass
{
public int ChildID { get; set; }
}
在这种情况下,我收到错误。
“TestConsoleApp.ParentClass”类型的数据成员“Int32 ID”不是类型“ChildClass”映射的一部分。上面的成员是继承层次结构的根吗?
我能够使用 Linq-to-sql 和 Dapper 解决该问题。
Linq-to-sql 用于支持旧代码。 Dapper 将解决映射问题。
这是固定代码
using (var db = new DataContext(connectionString))
{
string strSQL = "select 1 as ID, 'test' as Name, 5 as ChildID";
var ic1 = db.Connection.Query<ChildClass>(strSQL);
}