[英]Dapper and Stored Procedures
我有2個問題,希望兩個問題都可以回答。 我有一個這樣的模型:
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
}
現在,假設我的存儲過程(無法更改)返回first_name,lastName和UserEmail 。 我想使用某種方法(希望是數據注釋)將字段映射到屬性。 像這樣:
public class Person
{
[Column(Name = "first_name")]
public string FirstName { get; set; }
[Column(Name = "lastName")]
public string LastName { get; set; }
[Column(Name = "UserEmail")]
public string Email { get; set; }
}
這可能嗎? 您可能會建議確保屬性與字段名稱匹配,因為它們不區分大小寫,因此將Email更改為UserEmail是可行的,但並非出於這個原因。 我有一個分配了2 個人的課程:
public class Example
{
public string Name { get; set; }
public Person Mother { get; set; }
public Person Father { get; set; }
}
另外,我不能使用:
Dapper.DefaultTypeMap.MatchNamesWithUnderscores = true;
因為那時它似乎忽略了所有其他屬性。 與往常一樣,任何幫助將不勝感激:)
您可以使用Chain來做到。
static Tortuga.Chain.SqlServerDataSource DS = new Tortuga.Chain.SqlServerDataSource (connectionString);
var people = DS.Procedure("procName", new { @Param1 = x, @Parm2 = y}).ToCollection<Person>().Execute();
默認情況下,它采用Column
屬性。
您的第二個例子更難。 您需要前綴,以便它知道哪個FirstName與哪個屬性一起使用。
public class Example
{
public string Name { get; set; }
[Decompose("Mother_")]
public Person Mother { get; set; }
[Decompose("Father_")]
public Person Father { get; set; }
}
SELECT x.nName, m.FirstName as Mother_FirstName, f.FirstName as Father_FirstName, [...]
FROM people x
LEFT JOIN people f ON x.FatherKey = f.Key
LEFT JOIN people m ON x.MotherKey = m.Key
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.