日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

FreeSql (三十三)CodeFirst 类型映射

發布時間:2023/12/18 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 FreeSql (三十三)CodeFirst 类型映射 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前面有介紹過幾篇 CodeFirst 內容文章,有

  • 《(二)自動遷移實體》(https://www.cnblogs.com/FreeSql/p/11531301.html)
  • 《(三)實體特性》(https://www.cnblogs.com/FreeSql/p/11531302.html)
  • 《(四)實體特性 Fluent Api》(https://www.cnblogs.com/FreeSql/p/11531304.html)
  • 《(十八)導航屬性》(https://www.cnblogs.com/FreeSql/p/11531352.html)

入門 FreeSql 前這些算是基礎教程,需要提前了解,接下來進入 CodeFirst 功能的深入了解。

類型映射是 ORM 最重要的功能之一,FreeSql 支持五大數據庫大多數數據庫類型,包括 mysql 的 enum/set,pgsql 的 hstore/jsonb 等等。。除此默認之外,還提供了自定義類型映射。

類型映射,需要考慮寫入(我們的寫入需要考慮 NoneParameter 和 Parameter)、讀取時的轉換工作,這部分擴展對個人使用者而言比較復雜,如有需要請提出您的 issues。

FreeSql 擁有較高容錯處理,如:當數據庫類型為 bigint 可空,實體類為 int 時,讀取數據不會出錯。

自定義類型映射(MapType)

class EnumTestMap {public Guid id { get; set; }[Column(MapType = typeof(string))]public ToStringMapEnum enum_to_string { get; set; }[Column(MapType = typeof(string))]public ToStringMapEnum? enumnullable_to_string { get; set; }[Column(MapType = typeof(int))]public ToStringMapEnum enum_to_int { get; set; }[Column(MapType = typeof(int?))]public ToStringMapEnum? enumnullable_to_int { get; set; }[Column(MapType = typeof(string))]public BigInteger biginteger_to_string { get; set; }[Column(MapType = typeof(string))]public BigInteger? bigintegernullable_to_string { get; set; } } public enum ToStringMapEnum { 中國人, abc, 香港 }

應該不需要解釋了吧?

BigInteger 都可以映射使用了,但請注意:僅僅是 CURD 方便, Equals == 判斷可以使用,無法實現 + - * / 等操作;

FreeSql.Extensions.JsonMap

上面的 MapType 只能處理有限的類型,JsonMap 是一個擴展包,實現屬性對象映射為 varchar 字段,寫入時使用 json.net 序列化,讀取時使用 json.net 反序列化。

安裝擴展包:

dotnet add package FreeSql.Extensions.JsonMap

fsql.UseJsonMap(); //開啟功能, fsql 為 IFreeSql 對象class TestConfig {public int clicks { get; set; }public string title { get; set; } } [Table(Name = "sysconfig")] public class S_SysConfig<T> {[Column(IsPrimary = true)]public string Name { get; set; }[JsonMap]public T Config { get; set; } }

默認類型映射

csharpMySqlSqlServerPostgreSQLOracleSqlite
bool | bool?bit(1)bitboolnumber(1)boolean
sbyte | sbyte?tinyint(3)smallintint2number(4)smallint
short | short?smallint(6)smallintint2number(6)smallint
int | int?int(11)intint4number(11)integer
long | long?bigint(20)bigintint8number(21)integer
byte | byte?tinyint(3) unsignedtinyintint2number(3)int2
ushort | ushort?smallint(5) unsignedintint4number(5)unsigned
uint | uint?int(10) unsignedbigintint8number(10)decimal(10,0)
ulong | ulong?bigint(20) unsigneddecimal(20,0)numeric(20,0)number(20)decimal(21,0)
double | double?doublefloatfloat8float(126)double
float | float?floatrealfloat4float(63)float
decimal | decimal?decimal(10,2)decimal(10,2)numeric(10,2)number(10,2)decimal(10,2)
Guid | Guid?char(36)uniqueidentifieruuidchar(36 CHAR)character(36)
TimeSpan | TimeSpan?timetimetimeinterval day(2) to second(6)bigint
DateTime | DateTime?datetimedatetimetimestamptimestamp(6)datetime
DateTimeOffset | DateTimeOffset?--datetimeoffsettimestamp(6) with local time zone-
Enum | Enum?enumintint4number(16)mediumint
FlagsEnum | FlagsEnum?setbigintint8number(32)bigint
byte[]varbinary(255)varbinary(255)byteablobblob
stringvarchar(255)nvarchar(255)varchar(255)nvarchar2(255)nvarchar(255)
MygisPointpoint----
MygisLineStringlinestring----
MygisPolygonpolygon----
MygisMultiPointmultipoint----
MygisMultiLineStringmultilinestring----
MygisMultiPolygonmultipolygon----
BitArray--varbit(64)--
NpgsqlPoint | NpgsqlPoint?--point--
NpgsqlLine | NpgsqlLine?--line--
NpgsqlLSeg | NpgsqlLSeg?--lseg--
NpgsqlBox | NpgsqlBox?--box--
NpgsqlPath | NpgsqlPath?--path--
NpgsqlPolygon | NpgsqlPolygon?--polygon--
NpgsqlCircle | NpgsqlCircle?--circle--
(IPAddress Address, int Subnet) | (IPAddress Address, int Subnet)?--cidr--
IPAddress--inet--
PhysicalAddress--macaddr--
NpgsqlRange<int> | NpgsqlRange<int>?--int4range--
NpgsqlRange<long> | NpgsqlRange<long>?--int8range--
NpgsqlRange<decimal> | NpgsqlRange<decimal>?--numrange--
NpgsqlRange<DateTime> | NpgsqlRange<DateTime>?--tsrange--
PostgisPoint--geometry--
PostgisLineString--geometry--
PostgisPolygon--geometry--
PostgisMultiPoint--geometry--
PostgisMultiLineString--geometry--
PostgisMultiPolygon--geometry--
PostgisGeometry--geometry--
PostgisGeometryCollection--geometry--
Dictionary<string, string>--hstore--
JToken--jsonb--
JObject--jsonb--
JArray--jsonb--
數組--以上所有類型都支持--

以上類型和長度是默認值,可手工設置,如 string 屬性可指定 [Column(DbType = "varchar(max)")]

系列文章導航

  • (一)入門

  • (二)自動遷移實體

  • (三)實體特性

  • (四)實體特性 Fluent Api

  • (五)插入數據

  • (六)批量插入數據

  • (七)插入數據時忽略列

  • (八)插入數據時指定列

  • (九)刪除數據

  • (十)更新數據

  • (十一)更新數據 Where

  • (十二)更新數據時指定列

  • (十三)更新數據時忽略列

  • (十四)批量更新數據

  • (十五)查詢數據

  • (十六)分頁查詢

  • (十七)聯表查詢

  • (十八)導航屬性

  • (十九)多表查詢

  • (二十)多表查詢 WhereCascade

  • (二十一)查詢返回數據

  • (二十二)Dto 映射查詢

  • (二十三)分組、聚合

  • (二十四)Linq To Sql 語法使用介紹

  • (二十五)延時加載

  • (二十六)貪婪加載 Include、IncludeMany、Dto、ToList

  • (二十七)將已寫好的 SQL 語句,與實體類映射進行二次查詢

  • (二十八)事務

  • (二十九)Lambda 表達式

  • (三十)讀寫分離

  • (三十一)分區分表

  • (三十二)Aop

  • (三十三)CodeFirst 類型映射

  • (三十四)CodeFirst 遷移說明

  • (三十五)CodeFirst 自定義特性

轉載于:https://www.cnblogs.com/FreeSql/p/11531543.html

總結

以上是生活随笔為你收集整理的FreeSql (三十三)CodeFirst 类型映射的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 中文国产字幕 | 国产精品乱码一区二三区小蝌蚪 | 国产成人无码av | 久久久久久亚洲精品 | 国产 日韩 欧美 精品 | 亚洲经典在线 | 日韩av网址大全 | 四川丰满妇女毛片四川话 | 国产精品一卡二卡三卡 | 狠狠干网址| 久久这里有精品 | av色在线| 亚洲视频一区在线观看 | 日韩欧美四区 | 国产亚洲色婷婷久久99精品91 | jizz在线观看 | 欧美男女激情 | 性感美女在线 | 中文字幕日韩人妻在线视频 | 天堂网亚洲 | 成年人av网站 | 欧美精品在线观看 | 中文日韩在线观看 | 一级片久久久久 | 久草免费在线观看 | 天堂影院一区二区 | 久草剧场 | 蜜臀少妇久久久久久久高潮 | 国产精品国产三级国产Av车上的 | 午夜性福利视频 | 国产超碰人人爽人人做人人爱 | 国产婷婷色一区二区 | 国产精品不卡一区二区三区 | 99这里有精品 | 97碰碰碰 | 欧美8888 | 夜夜草影院| av黄色免费| 一级在线观看 | 亚洲午夜久久久久久久久红桃 | 波多野结衣 久久 | 成人看片网站 | heyzo朝桐光一区二区 | 狠狠做深爱婷婷久久综合一区 | 亚洲精品一区二区三区不卡 | 老外一级片 | 中文字幕一区二区三区四区不卡 | 少女与动物高清版在线观看 | 在线观看9.1 | 亚洲一区二区三区影视 | 成年人网站免费 | 涩色网站 | 亚洲综合首页 | 亚洲视频黄 | 成年人在线观看网站 | 啊灬啊灬啊灬秀婷 | 国产精品视频播放 | 91影视在线观看 | 视频免费观看在线 | 久久人人插 | 国产乱码久久久久久 | 日韩伊人久久 | 亚洲av综合永久无码精品天堂 | 日本高清网站 | 国产黄色91 | 粉嫩av网站| 91视频黄版| 蜜桃91麻豆精品一二三区 | 一级全黄裸体免费视频 | 国产精品亚洲二区 | 亚洲色图狠狠干 | 久久久久久久中文字幕 | 亚洲精品一区二区三区不卡 | 男女视频免费网站 | 女人扒开屁股让男人捅 | 天堂在线免费视频 | 欧美色图30p| 制中文字幕音影 | 无码视频一区二区三区 | 欧美在线视频精品 | 中文字幕一区二区三区人妻不卡 | 日韩激情 | 国产精品视频在线免费观看 | 国产黄色a | www.国产在线观看 | 色婷婷麻豆 | 激情视频免费观看 | 黄色在线视频播放 | 亚洲第一视频在线 | 91亚洲精品久久久蜜桃 | 精品久久亚洲 | 97视频久久| 欧美日韩一区精品 | 日韩激情网 | 高h视频在线免费观看 | 亚洲jizzjizz日本少妇 | 日本裸体xx少妇18在线 | 少妇久久久 | 在线一二三区 |