SQL內部我有主鍵爲二進制(8)的表。當我使用Update Model from Database
該表添加到我的模型,我可以看到,這列了type = Binary
EntityFramework數據庫優先 - 類型映射 - 將二進制(8)從SQL映射到C#中的int
,並在C#中,我得到的是列byte[]
。
我可以將該列映射到int嗎?
我知道我可以在SQL創建一個視圖與CAST
:
SELECT
Client_Id,
CAST(Client_Id AS INT) AS NewClient_Id,
* /*other columns*/
FROM
dbo.Clients
,但這不是解決辦法,因爲我必須能寫,不只是從該表中讀取。我知道我可以爲插入創建存儲過程,但我想避免這種情況。
我是usinf EntityFramewor 6.1.3。
你是否也會嘗試將一夸脫放入一個品脫罐中? 'binary(8)'包含8個字節。 C#中的「int」包含4個字節。你在這裏看到問題嗎? –
@Damien_The_Unbeliever對不起,如果我寫了不正確的東西,但我試圖讓它工作。我認爲,如果我可以在SQL中執行CAST,那麼EF可能會爲我執行該操作。我可以通過代碼將'byte []'轉換爲int,但我認爲EF具有這種內置,我只是不知道如何打開或配置它。 – Misiu
你可以寫信給一個視圖。但是,您需要爲視圖提供觸發器,以便將值轉換回來。也是二進制8是一個長期的IIRC – Mark