簡體   English   中英

實體框架:使用列名和值檢索數據

[英]Entity framework: Retrieving data with column name and value

如果我使用:

private List<string> GetDataFrom()
{
    var result = new List<string>();
    using (var context = new mainEntities())
    {
        var matches = context.data.Where(s => s.Width == 500).ToList();
        result.AddRange(matches.Select(t => t.Key));
    }
    return result;
}

它給了我完美的結果,但是我想使用一種可以使用列名和值的方法,如下所示:

private List<string> GetDataFrom(string columnName, int valToMatch)
{
    var result = new List<string>();
    using (var context = new mainEntities())
    {
        var propertyInfo = typeof(data).GetProperty(columnName).Name;
        var matches = context.data
                             .Where(p => p.propertyInfo == valToMatch);
        result.AddRange(matches.Select(t => t.Key));
    }
    return result;
}

這種方法顯然行不通,那么我該怎么做? 我正在使用SqlLite,因此給出的某些答案不適用。 整個問題是錯誤地使用propertyInfo。

我嘗試了各種不同的方法,但沒有成功。

這個問題不是重復的,因為建議的問題及其答案沒有太大幫助。 我希望這個問題可以重開。 我想分享自己的答案。

ToString()方法無法轉換為相關的SQL。

嘗試使用SqlFunctions.StringConvert(valToMatch)而不是valToMatch.ToString()

.ToString()

在Linq查詢中不起作用。

安裝.ToString()函數使用以下代碼

SqlFunctions.StringConvert()

請參閱以下答復https://stackoverflow.com/a/3292773/3736442

暫無
暫無

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

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