簡體   English   中英

如何使用帶有動態字符串的實體框架 where 子句

[英]How to use Entity Framework where clause with a dynamic string

我正在嘗試構建一個實體框架 linq 查詢以從子 object 返回父 object。

模型如下所示:

public class Parent
{
   Guid Id {get; set;}
   List<Child> Children {get; set;}
}

public class Child
{
    Guid Id {get; set;}
}

我的查詢如下所示:

string _foreignKeyName = "Children"
Guid existingChildId = "{some existing guid}"

var parent = _context.Set<Parent>()
                     .Include(_foreignKeyName)
                     .Where(x => x.Children // <--- I would like to make "Children" dynamic
                     .Where(y => y.Id == existingChildId).Any()) 
                     .FirstAsync();

無論如何要動態引用“兒童”並使用{_foreignKeyName}嗎?

我查看了表達式樹和動態 Linq,但如果可能的話,我寧願將其保留在標准 linq 中。

謝謝!

免責聲明:我是項目C# 評估表達式的所有者

如果你想保持類似於 LINQ 的語法,我會推薦我們的庫。 LINQ 動態部分是免費的

您所要做的就是調用“WhereDynamic”而不是“Where”並繼續使用相同的語法。

string _foreignKeyName = "Children"
Guid existingChildId = "{some existing guid}"

var parent = _context.Set<Parent>()
                     .Include(_foreignKeyName)
                     .WhereDynamic(x => "x.Children")
                     .Where(y => y.Id == existingChildId).Any()) 
                     .FirstAsync();

LINQ 動態: https://eval-expression.net/linq-dynamic

暫無
暫無

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

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