天天看點

EntityFramework Core Raw Query再叙注意事項前言

最近一直比較忙沒有太多時間去更新部落格,接下來會一直持續發表相關内容部落格,上一篇我們講到了EF Core中的原始查詢,這節我們再來叙述一下原始查詢,本文是基于在項目當中用到時發現的問題。

我們通過EF Core原始查詢主要是用于一些需要連接配接多個表進行複雜查詢,下面我們來回顧下。我們定義一個ViewModel。

EntityFramework Core Raw Query再叙注意事項前言
EntityFramework Core Raw Query再叙注意事項前言

我們将表Blog和Post表進行連接配接查詢出兩個表中的列,定義如下接口。

接下來我們來寫SQL語句。

EntityFramework Core Raw Query再叙注意事項前言
EntityFramework Core Raw Query再叙注意事項前言

然後我們在控制器中進行查詢。

EntityFramework Core Raw Query再叙注意事項前言

此時會出現如下錯誤:

我們知道當我們利用原始查詢出來的實體非EF Entity,而是由我們自定義的ViewModel。是以才會出現BlogViewModel未在EF上下文中,是以為了解決上述問題我們需要在EF上下文中定義ViewModel,如下:

EntityFramework Core Raw Query再叙注意事項前言
EntityFramework Core Raw Query再叙注意事項前言

然後我們在利用SQL查詢時需要用到上述BlogViewModels。如下:

EntityFramework Core Raw Query再叙注意事項前言
EntityFramework Core Raw Query再叙注意事項前言

我們再來看看運作結果,結果依然出錯,錯誤顯示如下:

根據提示我們再将BlogViewModel添加一個主鍵。

EntityFramework Core Raw Query再叙注意事項前言
EntityFramework Core Raw Query再叙注意事項前言

當然此時我們在寫SQL時也要傳回主鍵Id。

此時我們再來運作看看。

EntityFramework Core Raw Query再叙注意事項前言

本節我們探讨了EF Core中進行原始查詢需要注意的地方,我們再來做一個總結,當我們利用EF Core傳回一個ViewModel的話,此時我們需要将ViewModel定義在上文中,同時在ViewModel中需要定義一個主鍵,否則會出錯。好了,今天到此結束,我們下一篇會講講EF Core中的并發以及如何解決并發問題,多說一句,個人公衆号一直在更新和同步中,後續有可能一些比較簡短的内容會隻在公衆号上更新,為了讓使用者查閱公衆号内容更加便捷也在探索公衆号中,希望大家多多關注。 

本文轉自Jeffcky部落格園部落格,原文連結:http://www.cnblogs.com/CreateMyself/p/6287537.html,如需轉載請自行聯系原作者