第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

EF Core3.0 創(chuàng)建聯(lián)合唯一索引、外鍵和條件索引

標(biāo)簽:
MySQL C# .NET

1、DbContext创建联合唯一索引和外键

modelBuilder.Entity<MemberValueCard>(b =>
{
    b.OwnsOne(v => v.CardInfo);  //关联实体
    
    b.HasMany(v => v.MemberValueCardRecord)   
     .WithOne() 
     .HasForeignKey(nameof(MemberValueCardRecord.MemberCardId));  //创建外键
     
    b.HasIndex(v => new {v.VenueId,v.MemberId})
     .IsUnique();  //创建VenueId和MemberId的联合唯一索引
}

因为EF Core3.0不支持创建值对象的联合唯一索引,只能在Migrations中的UP函数中手写。

migrationBuilder.CreateIndex(
    name: "IX_MemberValueCards_VenueId_CardInfo_Id",
    table: "MemberValueCards",
    columns: new[] { "VenueId", "CardInfo_Id" },
    unique: true
);

解释:将MemberValueCard中的VenueId和CardInfo中的Id创建联合唯一索引


2、条件索引

我用的mysql版本是8.0.21,老版本不一定支持这种写法。

protected override void Up(MigrationBuilder migrationBuilder)       
{       
     migrationBuilder.Sql(@"CREATE UNIQUE INDEX IX_UniqueReferId ON merchanttransfertobankcards   ((CASE WHEN Status not in (8, 16, 32) THEN UniqueReferId END))");      
 }

解释:当status不等于8、16、32时,创建UniqueReferId的唯一索引。


3、条件联合唯一索引

CREATE UNIQUE INDEX IX_Unique_CourseId_Type_UserId ON orders (	
 ( CASE WHEN `Status` = 1 THEN CourseInfo_Id END ),	
 ( CASE WHEN `Status` = 1 THEN Sku_Type END ),
 ( CASE WHEN `Status` = 1 THEN User_UserId END )
 );

解释:当订单(order)状态(status)为1时,创建(CourseInfo_Id,Sku_Type,User_UserId)的联合唯一索引


點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
JAVA開(kāi)發(fā)工程師
手記
粉絲
1
獲贊與收藏
3

關(guān)注作者,訂閱最新文章

閱讀免費(fèi)教程

  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫(xiě)下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消