标签: linq-to-entities

更新过程运行后如何立即重新查询更新的值

据我所知,以下代码对“ MySite”对数据库所做的更改是立即的:

  public List<vcData> UpdateDisplayAndUrl(List<vcData> vcDataList)
    {
        foreach (vcData vcData in vcDataList)
        {
            _entities.ExecuteStoreCommand("UPDATE vcData SET DisplayItem = {0}, DisplayUrl = {1} WHERE ID = {2} ", vcData.DisplayItem, vcData.DisplayUrl, vcData.ID);
        }                   
        return GetTableData();
    }
Run Code Online (Sandbox Code Playgroud)

我想做的是立即返回新近更新的记录以进行进一步处理,本质上是重新查询刚刚进行的更改:

    public List<vcData> GetTableData()
    {  
        var result = (from td in _entities.vcData
                      where td.SiteID == "MySite" 
                      select td).ToList();
        return result;
    }  
Run Code Online (Sandbox Code Playgroud)

在我的控制器代码中,我正在尝试执行以下操作:

_currentvcTickerDataList = Repository.UpdateDisplayAndUrl(vcUnupdatedDataList);
//.....do more stuff with _currentvcTickerDataList, which ought to contain updated information, should it not?
Run Code Online (Sandbox Code Playgroud)

问题:该GetTableData()方法似乎不返回更新后的值,而仅返回先前(未更新)的值。

我是LINQ,实体框架和MVC的新手,因此我可以肯定我缺少一些基本知识。

c# linq-to-entities entity-framework asp.net-mvc-3

0
推荐指数
1
解决办法
1196
查看次数

需要帮助找出带有EF的LINQ查询

我有一堆实体,我想以类似维基的方式列出,它们将按照标题的第一个字母进行组织,然后计算每个字母存在多少个实体.所以,像:

A(5)
B(7)
C(4)

不过,我不知道怎么做.粗糙的伪代码版本:

from g in Games select g.title, /* count */
    where /* g.title.firstLetter */ ASC
Run Code Online (Sandbox Code Playgroud)

注释掉的部分是我被卡住的地方.有任何想法吗?

c# linq linq-to-entities entity-framework-4

0
推荐指数
1
解决办法
46
查看次数

如何将我的LINQ查询结果作为特定对象返回

如何将我的LINQ查询结果作为特定对象返回

public CountryTable GetSelectedEventInfo(string SelectedEventID)
{
    return (CountryTable) this.context.Event.Where(
                   e => e.EventID.Equals(Convert.ToInt32(SelectedEventID)));
}
Run Code Online (Sandbox Code Playgroud)

这是我的模特

public class CountryTable
{
    public int EventID { get; set; }
    public string Title { get; set; }
    public DateTime Startdate { get; set; }
    public DateTime EndDate { get; set; }
    public string EventUrl { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

下面是我的数据库上下文

public DbSet<CountryTable> Event { get; set; }
Run Code Online (Sandbox Code Playgroud)

以下是我想要做的

public CountryTable GetSelectedEventInfo(string SelectedEventID)
{
    return (CountryTable) this.context.Event.Where(
                   e => e.EventID.Equals(Convert.ToInt32(SelectedEventID)));
}
Run Code Online (Sandbox Code Playgroud)

我需要我的查询结果返回CountryTable类型的对象

c# linq-to-entities entity-framework-4 asp.net-mvc-3

0
推荐指数
1
解决办法
757
查看次数

如何将iqueryable <string>转换为linq中的字符串?

我有以下代码片段.其中我只想将PartyName作为字符串返回.但我得到错误:"不能隐含转换类型'System.Linq.Iqueryable到字符串"如果我想只返回字符串然后该怎么办?请帮我.

return objDatabase.FAPARs .Where(f => (f.PARTY_CODE == "P003")) .Select(f => f.PARTY_NAME);

linq linq-to-entities entity-framework

0
推荐指数
1
解决办法
3436
查看次数

Linq To Entities中的左外连接(无法在LINQ to Entities查询中构造实体或复杂类型.)

我有两个类映射我的数据库的两个表:

public class Product
{
    public int Id { get; set; }
    public string Token { get; set; }
    public string Name { get; set; }
    public decimal Value { get; set; }
}

public class Ticket
{
    public int Id { get; set; }
    public string SerialNumber { get; set; }
    public string ProductToken { get; set; }
    public Product Product { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

由于某些域名原因,产品和故障单在逻辑上是链接的,换句话说,它们没有链接在可由EF映射的数据库关系中,它们将在我的应用程序中链接一个"必须"翻译成的linq查询SQL外左连接.从这里,我做了以下查询:

IQueryble<Ticket> query = from ts in context.Tickets
                          join ps in context.Products 
                               on …
Run Code Online (Sandbox Code Playgroud)

c# linq linq-to-entities outer-join

0
推荐指数
1
解决办法
1311
查看次数

实体框架如何将文本框绑定到Windows窗体中的模型

在Windows窗体项目中使用实体数据模型,我想同时将Orders实体绑定到datagridview和textBox,textBox必须根据datagrid中的当前行显示OrderID值.

我在Form load事件中使用的代码是下一个:

    using(NorthwindEntities context = new NorthwindEntities())
    {
    ordersDataGridView.DataSource = context.Orders;
    OrderNumberTextBox.   ...
    }
Run Code Online (Sandbox Code Playgroud)

对于这种情况,绑定Textbox的正确语法是什么?谢谢.

c# linq-to-objects linq-to-entities entity-framework winforms

0
推荐指数
1
解决办法
7641
查看次数

LINQ to Entities无法识别方法'System.DateTime Parse(System.String)'方法

我是Linq的新手,以下查询一直返回"无法识别System.DateTime"错误.我尝试过Parse和Convert,但都没有用.这是我的查询:

mrcEntities context = GetContext();

        var query = from c in context.tblClients
                    where (c.FirstName != null || c.LastName != null)
                       && c.EligibilityDate >= DateTime.Parse("10/01/2011")
                       && c.EligibilityDate <= DateTime.Parse("04/30/2012")
                      orderby c.ClientID
                    select new
                    {
                        ClientID = c.ClientID,
                        FirstName = c.FirstName,
                        LastName = c.LastName,
                        MiddleName = c.MidName,
                        SSN = c.SSN,
                        DOB = c.DOB,
                        Sex = c.Gender,
                        Ethnic = c.EthnicCode
                    };

        clientRowCnt = query.Count();
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.

linq-to-entities

0
推荐指数
1
解决办法
1万
查看次数

检查多个表中是否存在值

我有这样的表在我的数据库一样Customer,Member,Instructor,Employee等每个用户都有自己的电子邮件adrress.我需要检查是否已有用户使用给定的电子邮件.我在考虑:

  • 检查每个表,如下所示:
    public bool IsEmailAddressExists(string email)
    {
        if (!Context.Customers.Any(c => string.Equals(c.Email, email, StringComparison.InvariantCultureIgnoreCase)))
            if (!Context.Members.Any(m => string.Equals(m.Email, email, StringComparison.InvariantCultureIgnoreCase)))
              ...
    }
Run Code Online (Sandbox Code Playgroud)
  • 选择所有电子邮件并检查:
    public bool IsEmailAddressExists(string email)
    {
        var emails = Context.Customers.Select(c => c.Email).Union(Context.Members.Select(m => m.Email))...; //other unions
        return emails.Any(e => string.Equals(e, email, StringComparison.InvariantCultureIgnoreCase));
    }
Run Code Online (Sandbox Code Playgroud)

有更多的表和许多用户,所以我想知道实现这种检查的最有效方法是什么.

谢谢.

c# performance linq-to-entities entity-framework

0
推荐指数
1
解决办法
1556
查看次数

如何在结果中显示搜索时间?

嗨,我有搜索表单,当我在数据库中搜索项目,我想要像谷歌搜索显示时间: 在此输入图像描述

提前致谢!

c# asp.net linq-to-entities entity-framework

0
推荐指数
1
解决办法
88
查看次数

LINQ to Entities中不支持LINQ表达式节点类型

当我尝试在LINQ to Entities中运行以下查询时出现错误:

 var query = DBConn.myView
                            .Select(dm => new App.DTOs.MyDTO
                            {
                                ID = dm.ID,
                                Prop1 = dm.Prop1
                                ....
                            })
                            .Where(dm => dm.TypeID != 4); 
Run Code Online (Sandbox Code Playgroud)

错误消息是:

LINQ expression node type 'TypeID' is not supported in LINQ to Entities
Run Code Online (Sandbox Code Playgroud)

它在.ToList()通话中失败:

private List<MyDTO> lstDTO;
lstDTO = query.ToList();
Run Code Online (Sandbox Code Playgroud)

但是,如果我.Where()从查询中删除它,它的工作原理.有没有办法在Where这个查询中使用该子句?

c# linq linq-to-entities entity-framework iqueryable

0
推荐指数
1
解决办法
1173
查看次数