使用Entity Framework中的linq获取数据表中的列值

时间:2017-03-21 07:11:18

标签: c# entity-framework linq datatable

我是LINQ查询的新手,请帮我找到解决方案。

我在Entity Framework数据模型中有一个源,有一个表currency绑定到源currencyIDCurrencyName

我需要使用LINQ查询将数据库中的值传递给DataTable

我尝试过类似下面提到的内容,但它不起作用:

 var dataset = Source.T_Currency
    .Where(x=> x.CurrencyID == x.CurrencyID &&  x.CurrencySymbol == x.CurrencySymbol)
    .Select(x => new x.Currency
    {
        CurrencyID = x.CurrencyID,
        CurrencySymbol = x.CurrencySymbol
    }).ToList();

2 个答案:

答案 0 :(得分:1)

如果要从T_Currency中选择所有行,请尝试

Source.T_Currency
    .Select(x => new
    {
        x.CurrencyID,
        x.CurrencySymbol
    })
    .ToList()

要按任意值过滤结果,请在选择之前添加Where语句:

Source.T_Currency
    .Where(x => x.CurrencySymbol == myCurrency) // where myCurrency is variable/parameter
    .Select(x => new
    {
        x.CurrencyID,
        x.CurrencySymbol
    })
    .ToList()

这是Select语句的示例,但实际上在这种情况下不需要它,因此Source.T_Currency.ToLost()返回与第一个代码片段相同的结果。差异在于值的类型,但如果您可以使用原始类,则不应创建无限类型。

答案 1 :(得分:0)

你应该像这个例子一样使用LINQ Join:

        var custSupJoin =
            from sup in suppliers
            join cust in customers on sup.Country equals cust.Country
            select new { Country = sup.Country, SupplierName = sup.SupplierName, CustomerName = cust.CompanyName };