标签: linq-to-sql

Linq-to-SQL - 防止 where 函数对数据库运行查询

我有一个 IQueryable 对象,它是视图的结果(使用 Visual Studio 中的数据模型)。

我想对对象应用额外的过滤器,但我不希望它返回到数据库并使用额外的 where 子句再次运行查询。该查询需要几秒钟才能运行,因此我希望 linq 简单地过滤当前列表而不是重新生成查询。

当我执行 .where() 函数时,如何防止 linq to sql 返回数据库?

collections linq-to-sql

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

Linq-to-SQL:如何对子选择执行计数

我仍在努力思考如何正确使用 LINQ-to-SQL,而不仅仅是编写自己的 sproc。

在属于的代码中,将 userId 传递给方法,然后 LINQ 使用它从GroupTable表中获取与userId匹配的所有行。GroupUser表的主键是GroupUserId,它是Group表中的外键。

    /// <summary>
    /// Return summary details about the groups a user belongs to
    /// </summary>
    /// <param name="userId"></param>
    /// <returns></returns>
    public List<Group> GroupsForUser(int userId)
    {
        DataAccess.KINv2DataContext db = new DataAccess.KINv2DataContext();
        List<Group> groups = new List<Group>();

        groups = (from g in db.Groups
                  join gu in db.GroupUsers on g.GroupId equals gu.GroupId
                  where g.Active == true && gu.UserId == userId
                  select new Group
                  {
                      Name …
Run Code Online (Sandbox Code Playgroud)

c# sql linq linq-to-sql

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

linq to sql - 重命名列名

如何像在常规 SQL 中一样使用 LINQ 重命名表列重命名

SELECT t.template_nm as [Template Name]
FROM Template t
Run Code Online (Sandbox Code Playgroud)

我从互联网上找到了答案,我可以重命名列名。但是两个单词之间不能有空格。

var template = from t in db.TEMPLATEs
       select new { Template_Name = t.TEMPLATE_NM };
Run Code Online (Sandbox Code Playgroud)

但我想重命名它而不用下划线(_)“模板名称”

请帮忙

谢谢你

c# linq naming linq-to-sql

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

基于列的两个列表的并集

我正在使用 Linq to Sql 合并两个列表。使用 List1 和 List2:

 var tr = List1.Union(List2).ToList();
Run Code Online (Sandbox Code Playgroud)

Union 工作正常,但问题是它正在检查每一列并删除我想要的一些行。所以我想知道是否有一种方法可以仅基于id每个列表的一列执行联合?

就像是:

var t = List1.id.Union(List2.id).ToList();
Run Code Online (Sandbox Code Playgroud)

这不起作用,但我想知道是否有办法做到这一点,无论是使用 LINQ 还是 T-SQL

c# t-sql linq linq-to-sql

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

实体框架中连接子句中的表达式之一的类型不正确。左连接中的常量

我正在尝试在 EF 查询中进行左连接。我收到以下错误:

错误 CS1941 连接子句中的表达式之一的类型不正确。调用“GroupJoin”时类型推断失败

这是 C# 代码:

var foo = from m in db.ClientMasters
                      join a in db.Orders on new { m.Id, Status = "N" } equals new { a.ClientID, a.Status } into a_join
                      from a in a_join.DefaultIfEmpty()
                      select new { m.ClientID, a.ID };
Run Code Online (Sandbox Code Playgroud)

c# sql-server entity-framework join linq-to-sql

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

LINQ - 如何删除表中的重复行

在某些过程之后,我想从表中删除重复项并提交更改,因此只保留单个值。

我有三个移除标准:

  • 姓名
  • 日期
  • 状态(始终为 1)

因此,如果存在具有相同名称、相同日期和相同状态的记录......删除一个。哪一个都无所谓。

我有:dbContext.tbl_mytable

.net c# linq linq-to-sql

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

带有 Linq OrderBy 子属性错误的 Automapper 投影

我在使用 AutoMapper(版本 5.1.1)投影结合 Linq OrderBy Child 属性表达式时遇到问题。我正在使用 Entity Framework Core(版本 1.0.0)。我收到以下错误:

“必须是可还原节点”

我的 DTO 对象如下

public class OrganizationViewModel
    {
        public virtual int Id { get; set; }
        [Display(Name = "Organization Name")]
        public virtual string Name { get; set; }
        public virtual bool Active { get; set; }
        public virtual int OrganizationGroupId { get; set; }
        public virtual string OrganizationGroupName { get; set; }
        public virtual int StrategyId { get; set; }
        public virtual string StrategyName { get; set; }
        public …
Run Code Online (Sandbox Code Playgroud)

projection automapper linq-to-sql entity-framework-core

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

检查组中任何项目的条件是否为真

如何检查使用 Linq to sql 创建的组中的任何项目的条件是否为真?

假设我们有 3 个表:Invoice,OrderOrderItem

我想知道发票上所有订单的总数,以及发票上订单中的任何订单项目是否有折扣。

from o in db.Orders
group o by new 
{
    InvoiceId = o.InvoiceId,
    LocationId = o.LocationId,
} into g
select new 
{
    InvoiceId = g.Key.InvoiceId,
    LocationId = g.Key.LocationId,
    Total = g.Sum(x => x.Total).
    HasDiscount = <???>
}
Run Code Online (Sandbox Code Playgroud)

我尝试过,let discountedItems = o.OrderItems.Where(i.Discount != 0)但我不知道如何引用正确的 OrderItems。

编辑:

Order Properties: Id, InvoiceId, LocationId, Total OrderItem Properties: Id, OrderId, Discount- 假设折扣是一个整数值

建议的答案 …

c# linq linq-to-sql

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

使用LINQ获取组的最后一条记录

我有一个清单:

var list = new List<Foo>() {
     new Foo() { FooId = 1, GroupId = 1, ValueA = 3}, 
     new Foo() { FooId = 2,GroupId = 1, ValueA = 40}, 
     new Foo() { FooId = 3,GroupId = 2, ValueA = 80}, 
     new Foo() { FooId = 4, GroupId = 2, ValueA = 20}, 
};
Run Code Online (Sandbox Code Playgroud)

我只想获取最新记录,因此结果如下:

| GroupId | ValueA |
|---------|--------|
|     1   |   40   | 
|     2   |   20   |
Run Code Online (Sandbox Code Playgroud)

c# linq linq-to-sql

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

如果不存在异常,如何获得First()而不引发异常?[当FirstOrDefault没有帮助时]

我希望得到一个First使用Linq2Sql而不会引发异常,如果没有找到结果.

我知道FirstOrDefault,但是如果我收到默认值,我不知道它是否在数据库中,或者它是否作为返回OrDefault.

有没有办法让一个First没有引发异常,但知道接收到的值是否是从数据库中?

我知道我可以先检查Any(),但这意味着要两次访问数据库.如果可能的话,我想避免这种情况.

.net c# sql sql-server linq-to-sql

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