實體對映時,遇到複雜型別,可選擇下述方法處理:
在複雜型別上宣告 [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...