标签: linq-to-sql

AsEnumerable() 是否缓存所有结果(LINQ)

当我们在序列上调用查询运算符时,会调用特定于序列的运算符。
我的意思是如果我调用Where<>()operator on IEnumerable<>,将被调用的运算符将在 Enumerable 类中定义,如果它被调用IQueryable<>,则将调用在 Queryable 类中定义的那个。

考虑在 Enumerable 类中定义的运算符 Reverse。
如果我想调用它,Iqueryable<>那么我必须先使用AsEnumerable<>()运算符将其转换为IEnumerable<>.

db.Countries.OrderBy(cntry=>cntry.CountryName).AsEnumerable().Reverse()
Run Code Online (Sandbox Code Playgroud)

但是 Reverse 运算符必须同时拥有所有记录,以便它可以反转它们。
在上面的代码中,所有记录都是先加载到内存中,然后 Reverse() 操作符才反转它吗?

c# linq-to-sql

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

使用 linq 调用存储过程

我是 Linq 服务器的新手。我的数据库中有一个存储过程,用于返回计数。

select COUNT(*) from tbl_WorkerUsers 
        where WorkerCode=@Wcode
Run Code Online (Sandbox Code Playgroud)

当我直接在我的数据库中运行它时,它返回 1。

    exec checkWorkerCodeAvailibility 100000312
Run Code Online (Sandbox Code Playgroud)

但是当我在 c# 代码中运行它时,它总是返回 null。

WorkerDataContext Wkc = new WorkerDataContext();
        int? result = Wkc.checkWorkerCodeAvailibility(Int32.Parse(Wcode)).Single().Column1;
Run Code Online (Sandbox Code Playgroud)

怎么了?

asp.net stored-procedures linq-to-sql

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

通过 LINQ 插入日期时间

我的表中有一个列,其数据类型为“时间戳”。现在我通过 LINQ2SQL 插入一行。现在我应该在这里写什么:

Entity_Product_Point ev = new Entity_Product_Point();
ev.DateCreated = ???
Run Code Online (Sandbox Code Playgroud)

谢谢!

c# linq datetime linq-to-sql

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

如何使用 Linq Aggregate 函数将 IEnumerable&lt;string&gt; 聚合为字符串

我有一个Ienumerable<string>集合,我想用分隔符连接成一个字符串;

例如 {"One","Two","Three"} -> "One;Two;Three;"

是否可以使用以下功能?

List<string> list = new List<string>(){"One","Two","Three"};
list.Aggregate<String>((x,y) => x + String.Format("{0};",y));
Run Code Online (Sandbox Code Playgroud)

我也试过这个代码:

list.Aggregate<String>((x,y) => String.Format("{0};{1}",x,y)); 
Run Code Online (Sandbox Code Playgroud)

两个样品都不起作用。

编辑:我发现使用 Linq-2-sql 或 Linq-2-sql 中的聚合函数无法执行我想要的操作。

http://social.msdn.microsoft.com/forums/en-US/linqprojectgeneral/thread/dac496c0-5b37-43ba-a499-bb8eff178706/

EDIT2:我使用的解决方法是检查原始 linq 查询返回的项目......并将它们复制到一个新列表,并按照下面的 linq 对象而不是 linq-2-sql 对象的答案中的建议进行连接.

aggregate linq-to-sql

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

如果使用 linq 删除其他列表中不存在的项目,则删除列表中的项目

我有两种不同类型的列表

class A

{

int number;

string name;

}

class B

{

int number;

}

List<A> a1;

List<B> b1;
Run Code Online (Sandbox Code Playgroud)

现在两个列表都已填充,现在我想删除列表 a1 中的项目(编号)(如果列表 b1 中不存在该项目(编号))。尝试了以下方法

a1.removeall(a=>b1.Exists(b1.number!=a1.number);
Run Code Online (Sandbox Code Playgroud)

但结果并不如预期。请帮助我......

linq linq-to-sql c#-4.0

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

如何在 EF6 中使用表名获取实体及其属性和类型

我正在尝试使用 EF6 中的表名称读取实体属性及其类型。例如

public partial class ContextEntities : DbContext
{
    public virtual DbSet<tblNote> tblNotes { get; set; }
}

public partial class tblNote
{
    public int intNoteID { get; set; }
    public string strLoanNumber { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我有一个"tblNote"以字符串形式调用的实体名称。通过使用这个表名,我想获取tblNote实体及其属性和类型。

所以我这样做了

List<Reflection.PropertyInfo> props = new List<Reflection.PropertyInfo>();

PropertyInfo entityProperty = contextEntities.GetType().GetProperties().
                              Where(t => t.Name == "tblNote").Single();
if ((entityProperty != null))
    props.Add(entityProperty); 
Run Code Online (Sandbox Code Playgroud)

这是行不通的。我只是获得contextEntities属性。怎么做?

c# entity-framework linq-to-sql

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

在 LINQ 中使用 OR 条件进行 LEFT JOIN

我需要在 LINQ 中编写以下 T-SQL:

SELECT T1.ID, T2.Name
FROM T1
LEFT JOIN T2 ON (T1.ID = I2.ID1 OR T1.ID = T2.ID2)
Run Code Online (Sandbox Code Playgroud)

OR 连接在 LINQ 中如下所示:

T1.Join(T2, t1=>new{}, t2=>new{}, (t1,t2)=>new{ID=t1.Id, t2=t2}).Where(o=>o.Id == o.t2.Id1 || o.Id==o.t2.Id2);
Run Code Online (Sandbox Code Playgroud)

但该查询是 INNER JOIN,而不是 LEFT JOIN。某种 LEFT JOIN 看起来像这样:

T1.GroupJoin(T2, t1 => t1.Id, t2 => t2.Id1, (t1, t2) => new { Id = t1.Id, Name1 = t2.Select(t => t.Name) }).DefaultIfEmpty()
  .GroupJoin(T2, o => o.Id, t2 => t2.Id2, (i, j) => new { Id = i.Id, Name1 = i.Name1, …
Run Code Online (Sandbox Code Playgroud)

c# linq linq-to-sql

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

在 Linq to SQL 中使用求和

我有一个 SQL 命令,我试图将其转换为 LINQ to SQL 命令,但遇到了困难。

我的 SQL 命令如下:

SELECT purchs.iclientid, ifeatureid, AddnlOptionList FROM purchs
WHERE AddnlOptionList <> ''
GROUP BY purchs.iclientid, ifeatureid, AddnlOptionList
HAVING (SUM(noptions) > 0)
Run Code Online (Sandbox Code Playgroud)

我已经成功地做到了以下示例:

var q =
   from purchs in db.Purchases
   group q by purchs.noptions into g
   where purchs.AddnlOptionList != ""
      && g.Sum(x => x.noptions) > 0
   select q;
Run Code Online (Sandbox Code Playgroud)

但是,我似乎被困在 q 组中,出现以下两个错误:

Cannot use local variable 'q' before it is declared

Cannot convert lambda expression to type 'System.Collections.Generic.IEqualityComparer<decimal?> because it is not a delegate …
Run Code Online (Sandbox Code Playgroud)

c# linq-to-sql

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

在 Linq 语句中按多列分组

下面是我的 linq 查询:

var objList = from p in db.Table1
              join q in db.Table2 on p.saleCategoryId equals q.Id
              join r in db.Table3 on p.landDetailId equals r.Id
              select new
              {
               p.Id,
               r.KhataNo,
               r.KhasraNo,
               q.type,
               p.saleCategoryId,
               p.area,
               p.stock
              };
Run Code Online (Sandbox Code Playgroud)

从上面的查询我得到如下结果:

Id  KhataNo  KhasraNo  Type SaleCategoryId  Area  Stock
1     1AB     11AB      LOM     1            100   50
2     1AB     11AB      LOR     2            200  100
3     1CD     11CD      LOM     1            300  150
4     1CD     11CD      LOR     2            250   50
Run Code Online (Sandbox Code Playgroud)

但我想按以下方式对上面的几列进行分组和总结(所需的输出):

Id   KhataNo   KhasraNo  Area  Stock
1 …
Run Code Online (Sandbox Code Playgroud)

sql linq entity-framework sql-server-2008 linq-to-sql

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

使用 Id 列表搜索实体框架表

我有一个返回实体框架表的函数,但我只需要通过另一个实体列表传入的某些 ID。我不确定这样做的正确方法,我尝试了以下方法,但列表导致了问题......

public IEnumerable<Payment> PaymentsForContact(List<User> user) => 
        _context.Payments.Where(p=> p.Id == user.Id;
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以遍历用户对象以仅返回 _context.Payments 中的用户 ID?

提前致谢

c# linq entity-framework linq-to-sql

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