簡體   English   中英

DbSet.Find() 不適用於 Guid 屬性

[英]DbSet.Find() doesn't work for Guid properties

我有兩個模型

public class QChoice : ModelWithGuid
{
    [Required]
    public Guid? QId { get; set; }
}

public class ModelWithGuid
{
    [Key]
    public Guid Id { get; set; } = Guid.NewGuid();
}

我正在 CHOICE Dbset 上執行查找操作。

DataContext.QChoice.Find(choice => choice.QId.Value.Equals("Guid")).ToList();

從上面的行 Find Operation 調用下面的方法。

public IEnumerable<T> Find(Expression<Func<T, bool>> predicate)
{
  var resultData = table.Find(predicate);//table means QChoice DbSet
  yield return resultData;
}

我收到錯誤,如“調用 'DbSet.Find' 的位置 0 處的鍵值類型為 'Expression>',與 'Guid' 的屬性類型不匹配”。請幫助我

根據這份文件,

EF Core DbSet<TEntity>.Find不采用任何predicate而是將實體的主鍵作為對象,如下所示:

var qChoice = DataContext.QChoice.Find(choice.QId);

此外,如果您想使用謂詞進行Find按如下方式更新您的Find方法:

public T Find(Expression<Func<T, bool>> predicate)
{
     var resultData = table.Where(predicate).FirstOrDefault();
     return resultData;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM