簡體   English   中英

使用實體框架獲取數據的通用函數

[英]Generic function for getting data using entity framework

我正在嘗試使用Entity Framework創建一個通用函數來從DB獲取數據。 我傳遞了一個id作為檢索的關鍵。 為此,我編寫了以下函數

public T Get<T>(object id) where T : class
{
    T item = null;

    using (var context = MyContext())
    {
        item = context.Set<T>().Find(id);
    }

    return item;
}

該功能正常運行沒有任何問題。 但是,如果我沒有將主鍵作為過濾器傳遞,我該如何修改此函數來獲取數據?

您可以傳遞謂詞表達式並使用.FirstOrDefault()

public T Get<T>(Expression<Func<T, bool>> predicate)
    where T : class
{
    T item = null;
    using (var context = MyContext())
    {
        item = context.Set<T>().FirstOrDefault(predicate);
    }
    return item;
}

var customer = context.Get<Customer>(x => x.Name == "Bob");

暫無
暫無

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

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