如果聲明它,可以創建一個表達式樹。普通代碼的表達式結構
但是有可能得到一個普通的代碼塊,如方法或屬性getter的表達式樹?
我想要做的是,讓我們說一個訂單處理系統,我有訂單項目類:
class Item : Entity
{
[Cascade]
public Document document { get; set; }
public int line { get; set; }
public Product product { get; set; }
public string description { get; set; }
public decimal qty { get; set; }
public decimal price { get; set; }
public decimal net
{
get
{
return qty * price;
}
}
public VatCode vat_code { get; set; }
}
其中淨值等於數量*價格,所以我想使用屬性或方法聲明它,然後讓框架反省該表達式,以便它可以生成適當的SQL,以便在相應的數據庫視圖中定義相應的計算列。
這樣做最明顯的方法是獲取屬性獲取器或方法的表達式樹,但我找不到任何指示如何做到這一點,或者它是可能的。 (我已經找到了一種方法來獲得一個字節流的方法體,但這不是這裏所期望的。)
如果這是不可能的,我想推薦的解決方案是聲明類似靜態字段是一個表達式樹,並且在運行時編譯/運行它以供內部使用,並且對於SQL生成也是正常的內省?