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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

EF Core:使用鏈?zhǔn)綄傩詾閺?fù)合 PK 的一部分定義外鍵

EF Core:使用鏈?zhǔn)綄傩詾閺?fù)合 PK 的一部分定義外鍵

C#
Smart貓小萌 2022-12-31 12:48:20
我有以下模型:internal class SchemaEfEntity{    [Required]    [MaxLength(128)]    public string Name { get; set; }    [Required]    public DatabaseEfEntity Database { get; set; }}internal class DatabaseEfEntity{    [Required]    public string Name { get; set; }    [Required]    public InstanceEfEntity Instance { get; set; }    public ICollection<SchemaEfEntity> Schemas { get; set; }}internal class InstanceEfEntity : IEfIdEntity{    public long Id { get; set; }    [Required]    public string Name { get; set; }    public ICollection<DatabaseEfEntity> Databases { get; set; }}public sealed class MyDbContext : DbContext{        internal DbSet<InstanceEfEntity> Instances { get; set; }        internal DbSet<DatabaseEfEntity> Databases { get; set; }        internal DbSet<SchemaEfEntity> Schemas { get; set; }        protected override void OnModelCreating(ModelBuilder modelBuilder)        {            modelBuilder.Entity<InstanceEfEntity>().HasKey(x => x.Id);            modelBuilder.Entity<InstanceEfEntity>().HasIndex(x => x.Name).IsUnique();            modelBuilder.Entity<DatabaseEfEntity>().HasKey(                $"{nameof(DatabaseEfEntity.Instance)}{nameof(InstanceEfEntity.Id)}",                $"{nameof(DatabaseEfEntity.Name)}");            modelBuilder.Entity<SchemaEfEntity>().HasKey(                $"{nameof(SchemaEfEntity.Database)}{nameof(DatabaseEfEntity.Instance)}{nameof(InstanceEfEntity.Id)}",                $"{nameof(SchemaEfEntity.Database)}{nameof(DatabaseEfEntity.Name)}",                $"{nameof(SchemaEfEntity.Name)}");        }}SchemaEfEntity定義了一個(gè)由 ( InstanceId,DatabaseName和SchemaName)組成的復(fù)合 PK。但是在創(chuàng)建遷移時(shí)出現(xiàn)以下錯(cuò)誤:表達(dá)式“c => c.Database.Instance”不是有效的屬性表達(dá)式。該表達(dá)式應(yīng)表示一個(gè)簡(jiǎn)單的屬性訪問:'t => t.MyProperty'。參數(shù)名稱:propertyAccessExpression有任何想法嗎?有可能嗎?有沒有辦法“手動(dòng)”指定它,即不使用屬性鏈而只是將表和列指定為純文本?
查看完整描述

1 回答

?
哆啦的時(shí)光機(jī)

TA貢獻(xiàn)1779條經(jīng)驗(yàn) 獲得超6個(gè)贊

可以使用以下語(yǔ)法完成:


modelBuilder.Entity<SchemaEfEntity>()

    .HasOne(typeof(InstanceEfEntity))

    .WithMany()

    .HasForeignKey(

        $"{nameof(SchemaEfEntity.Database)}{nameof(DatabaseEfEntity.Instance)}{nameof(InstanceEfEntity.Id)}")

    .OnDelete(DeleteBehavior.Restrict);


查看完整回答
反對(duì) 回復(fù) 2022-12-31
  • 1 回答
  • 0 關(guān)注
  • 72 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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