Orm 为嵌套对象编写简洁的查询
我的代码结构如下:Orm 为嵌套对象编写简洁的查询,orm,dapper,Orm,Dapper,我的代码结构如下: class Person { Name PersonName; int Age; } class Name { string FirstName { get; set; } string LastName { get; set; } } 这是我的存储过程,它从数据库中填充数据 Create Procedure SpGetAllPersons As Select FirstName, LastName, Age from Persons 如
class Person
{
Name PersonName;
int Age;
}
class Name
{
string FirstName { get; set; }
string LastName { get; set; }
}
这是我的存储过程,它从数据库中填充数据
Create Procedure SpGetAllPersons
As
Select FirstName, LastName, Age from Persons
如何编写从数据库中提取所有人员的简洁查询
例如:
List Persons=DbConn.Query(“SpGetAllPersons”,CommandType.StoredProcedure)代码>如果要选择嵌套对象,则需要使用多重映射器
这应该起作用:
List<Person> persons = DbConn.Query<Name,Person,Person>
("SpGetAllPersons",
(name,person) => {person.Name = name; return person;}
commandType: CommandType.StoredProcedure,
splitOn: "Age");
List persons=DbConn.Query
(“SpGetAllPersons”,
(姓名,person)=>{person.name=姓名;返回人;}
commandType:commandType.StoredProcess,
斯普利顿:“年龄”);
多重映射器可以返回任何类型,甚至只是未映射到任何db表的聚合类型
如果要在任何未被称为id
或id
的对象上进行拆分,则必须提供splitOn
参数 这对我不起作用。我不得不交换姓名的位置:.Query(…,(person,Name)=>…)
。此外,splitOn:“Age”对我也不起作用-我经常遇到这样的错误:“当使用多重映射API时,如果您有Id以外的密钥,请确保设置splitOn参数”我误解了splitOn的实际操作。。。那部分很好用。。。但我仍然需要交换Name