[英]Convert dynamic to object from dapper Query<dynamic>
是否可以將Dapper.Query返回的動態變量轉換為對象? 例:
class MyClass
{
public int Id { get; set;}
public string SomeData { get; set; }
}
IEnumerable<dynamic> data = sql.Query<dynamic>(SELECT * FROM MyClassTable");
foreach(var record in data)
{
int parent_id = record.SomeId;
// any simple way to fill MyClass properites from record?
// instead of doing in manually?
MyClass obj = ?
}
有什么簡單的方法可以從記錄中填充MyClass屬性? 而不是手動進行?
不會。不幸的是,您必須手動進行操作。 最好的辦法是將映射邏輯移到一個位置,以便可以在數據訪問層中重新使用它。 我通常使用擴展方法,但是您也可以使用反射來設置匹配的屬性名稱...但是,以我個人的觀點,我通常使用dapper來提高性能,而使用反射有點貴,因此我通常避免使用在這些情況下的反思。
是否可以將Dapper.Query返回的動態變量轉換為對象?
是。 如上所述
我知道您可能想簡化您的問題,但我想值得指出的是,如果MyClass
表示該選擇查詢返回的記錄,則您發布的示例不需要返回動態對象。 您可以簡單地執行以下操作...
var data = sql.Query<MyClass>(SELECT * FROM MyClassTable");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.