使用 LINQ to SQL 映射 .Net 4.8 中继承类的问题

问题描述 投票:0回答:1

我正在使用 .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”映射的一部分。上面的成员是继承层次结构的根吗?

c# asp.net linq-to-sql
1个回答
0
投票

我能够使用 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);
                }
© www.soinside.com 2019 - 2024. All rights reserved.