0
我有一組實體存儲在sql數據庫中。每個實體都存儲在一個表中。一些實體字段被存儲到列(所以我們可以用它們查詢),但是整個實體實例被序列化爲名爲'JsonContent'的特殊列上的JSON。自定義LINQ數據映射
我希望能夠使用LINQ與這些實體。查詢應支持兩種模式:
- 薄對象:查詢項目只包括列字段
- 發物:查詢項目包含兩列和「JsonContent」的數據。
如何實現這個目標?
我寫了一個類下面的類:
class Store<TEntity> {
public IList<TEntity> Select(
Expression<Func<TProto, bool>> where, bool fat) {...}
}
我翻譯where
到SQL。這是重新發明輪子。我該如何擺脫?
。主要是因爲課程將取決於數據庫。我的實體已經從IDL生成。我必須確保數據庫模式匹配IDL(我只在運行時通過ALTER TABLE調用來完成)。 – Gatis
我正在尋找使用反射的解決方案,例如使用表格和列屬性。但是我不能使用它們,因爲類是由第三方工具生成的。 – Gatis
那麼你提到的不是重新發明輪子,如果不使用EF,你將重塑一切。你可以做的是首先使用你已經生成的實體的EF代碼,因爲你只有一個表,它將工作得很好,不管它們是如何完成的,作爲獎勵你可以擺脫你的alter table並讓實體框架自動遷移修改你的數據庫 –