所以找了一個替代方案-PetaPOCO
它是一個輕量級的ORM
這裡這先不介紹它那麼多了
先memo下來我在使用SQL join多table時,要對應到相對的POCO時所發生的問題
使用Fetch時,無法回傳對應的POCO
例:
var sql = PetaPoco.Sql.Builder
.Append("SELECT Test_Basic.*, Test_Detail.*")
.Append(" From Test_Basic ")
.Append(" JOIN Test_Detail ON Test_Basic.MID = Test_Detail.TID Where Test_Basic.Account = 'test' ");
var test = databaseContext.Fetch<TestBasic, TestDetail>(sql);
後來才發現是TestBasic那個POCO裡面
少了一個TestDetail的關聯,補上如下:
[ResultColumn]
public TestDetail TestDetailObject { get; set; }
這樣就抓的到了
另外欄位也記得加上PetaPOCO的annotation
[PetaPoco.Column]
public string Account { get; set; }
或者是拿掉[ExplicitColumns]
沒有留言:
張貼留言