asp.net 使用LINQ to SQLMap.Net 4.8中的继承类

lbsnaicq  于 2023-11-20  发布在  .NET
关注(0)|答案(1)|浏览(119)

我正在使用.Net 4.8 Framework和System.Data.Linq包。
我正在尝试将数据从数据库Map到对象(子对象)。
ChildClass继承了ParentClass,所以在我看来它应该也可以使用ParentClass的属性。但是我无法实现它。
到目前为止,我已经尝试了下面的代码

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”的Map的一部分。该成员是否在继承层次结构的根之上?

mzmfm0qo

mzmfm0qo1#

我可以使用Linq-to-SQL和Dapper解决这个问题。
Linq-to-sql用于支持旧代码,Dapper将修复Map问题。
这里是固定代码

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);
                }

字符串

相关问题