EF CORE中複雜型別的對映

2022-06-26 06:33:13 字數 1313 閱讀 8038

實體對映時,遇到複雜型別,可選擇下述方法處理:

在複雜型別上宣告 [owned],但僅限該複雜型別是全部由簡單值型別組成的

自定義序列化方法

示例: ipinfo使用了owned,對ipendpoint使用自定義序列化,對versioninfo使用json序列化

@@@code

publicclasscontroller: icontroller

publicipinfo ipinfo = ipinfo.default;

[column(typename = "string")]

publicversioninfo versioninfo = versioninfo.default;

[column(typename = "string")]

publicsystem.net.ipendpoint serveripendpoint = newsystem.net.ipendpoint(system.net.ipaddress.any, 0);

publicdatetime time = datetime.now;

[owned]

publicclassipinfo

= newipinfo()

;publicstringip

publicushortport = 60000;

publicstringmac

publicstringmask = "255.255.255.0";

publicstringgateway = "192.168.0.1";

publicboolforce

}自定義序列化

@@@code

publicclassipendpointconverter: valueconverterstring>

publicstaticvalueconverterinfo defaultinfo

}publicclassjsonconverter : valueconverterstring>

: base(

v => v.serializeobject(),

v => v.deserialize(),

publicstaticvalueconverterinfo defaultinfo

}protectedoverridevoidonmodelcreating(modelbuilder modelbuilder)

aa();

aa();

foreach(var entitytype inmodelbuilder.model.getentitytypes())}}

}

Go基礎(複雜型別) 對映

對映將鍵對映到值。對映的零值為 nil nil 對映既沒有鍵,也不能新增鍵。make 函式會返回給定型別的對映,並將其初始化備用。package main import fmt 定義乙個構造 type vertex5 struct 定義乙個map,這個map的鍵是string型別的 var m ma...

Hive中的複雜型別

hive專欄 主目錄 前言 建立資料庫表,以array作為資料型別 create table person name string,work locations array row format delimited fields terminated by t collection items te...

派生複雜型別

複雜型別都是通過限制或擴充套件其他的型別來派生,通過限制派生的新型別的值範圍是基型別值範圍的自己,新型別的所有例項對於基型別也是有效的,而擴充套件則可以為現有型別新增新的元素和屬性,基型別的例項對於擴充套件型別不一定有效。從簡單型別或另乙個具有簡單內容的複雜型別派生複雜型別時,使用 xs conte...