日韩性视频-久久久蜜桃-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 | 8x8ⅹ国产精品一区二区 | 国产成人无码精品久久久久 | 国产伦精品一区二区三区 | 欧美成人片在线 | 射黄视频 | 在线观看的黄色网址 | 欧洲一区二区在线 | 国产伦理在线 | 欧美日韩视频在线播放 | 亚洲av人无码激艳猛片服务器 | 亚洲男女 | 蜜臀久久99精品久久久久久宅男 | 男人操女人网站 | 射久久| 97视频免费看 | av小说在线 | 色悠悠国产 | 国产高清无遮挡 | 日批视频免费 | 91成年人网站 | 一本色综合 | 色妞综合| 人人澡人人透人人爽 | 伊人婷婷久久 | 成人在线观看a | 国产乱人乱偷精品视频 | 色婷婷激情| 中文字幕在线观看网站 | 亚洲一级大片 | 亚洲第一页色 | 人妻丰满熟妇无码区免费 | 9色在线视频 | h部分肌肉警猛淫文 | 国产在线精品一区二区三区 | 久久久久99精品 | 天天干导航 | 日韩av男人天堂 | 美国av导航 | 欧美一级淫片免费视频黄 | 久久影业| 男人操女人下面 | 亚洲精品av在线 | 99久久久久无码国产精品 | 成人精品视频在线观看 | 一区二区三区国产在线观看 | 99国产精品99 | 欧美一级鲁丝片 | 白嫩初高中害羞小美女 | 三级黄色小视频 | 久久久久久久国产精品美女 | 亚洲人无码成www久久 | 久久综合伊人77777麻豆 | 精品玖玖玖 | 日韩亚洲国产精品 | 日韩精品成人av | 免费看欧美黄色片 | 亚洲精品1区2区 | 女人下边被添全过视频 | 亚洲欧美日韩在线一区 | 国产顶级毛片 | 四虎免费久久 | www精品一区二区三区 | 欧美日韩片 | 午夜免费播放观看在线视频 | 国产原创麻豆 | 中文字幕av久久 | 天天操夜夜操视频 | 欧美视频久久 | wwwav视频在线观看 | 美女脱光内衣内裤 | 欧美久草 | 日韩精品第一页 | 丁香花婷婷 | 亚洲麻豆 | 人人干人人草 | 日韩中文av | 久久美女免费视频 | 亚洲三区精品 | 免费国产一级 | 日本成人一二三区 | 深夜福利1000 | 国产精品久久久久久久午夜 | 麻豆md0049免费| 午夜精品三级久久久有码 | 欧美日韩国产大片 | 国产精品无码免费播放 | 日韩欧美网址 | 久久国产精品久久久 | 久久国产视频精品 | 蜜桃视频在线播放 | 九一国产视频 | 被两个男人吃奶三p爽文 | 久久免费视频99 | 亚洲视频一二三区 | 中文字幕日韩电影 |