代码之家  ›  专栏  ›  技术社区  ›  Quark Soup

如何在没有主键的实体框架中查找记录

  •  0
  • Quark Soup  · 技术社区  · 6 年前

    我有一个实体:

    public class Account
    {
        public int AccountId { get; set; }
        public string Mnemonic { get; set; }
        public decimal NetAssetValue { get; set; }
    }
    

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        // Account
        modelBuilder.Entity<Account>()
            .HasKey(a => a.AccountId);
        modelBuilder.Entity<Account>()
            .HasIndex(a => a.Mnemonic)
            .IsUnique();
    }
    

    当我将测试数据存储在一个XML文件中时,我不知道分配给主键的值,所以如果我想使用它,我需要通过助记符找到这个记录。 我知道我可以使用LINQ:

    var accountId = (from a in account
                    where mnemonic = "Account1"
                    select AccountId).First();
    

    1 回复  |  直到 6 年前
        1
  •  0
  •   Moho    6 年前

    account DbSet<Account> 从你的 DbContext IQueryable<Account> 从相同的派生,它将使用索引查询数据库。如果你想模仿 Find dbContext.Set<Account>().Local 包含查询数据库之前的实体。