标签: linq-to-sql

在一个LINQ查询中获取两列的总和

假设我有一个名为Items的表(ID int,Done int,Total int)

我可以通过两个查询来完成:

int total = m.Items.Sum(p=>p.Total)
int done = m.Items.Sum(p=>p.Done)
Run Code Online (Sandbox Code Playgroud)

但我想在一个查询中执行此操作,如下所示:

var x = from p in m.Items select new { Sum(p.Total), Sum(p.Done)};
Run Code Online (Sandbox Code Playgroud)

当然有一种方法可以从LINQ语法中调用聚合函数......?

.net c# linq sum linq-to-sql

60
推荐指数
4
解决办法
6万
查看次数

如何编写异步LINQ查询?

在我读了一堆LINQ相关的东西之后,我突然意识到没有文章介绍如何编写异步LINQ查询.

假设我们使用LINQ to SQL,下面的语句很清楚.但是,如果SQL数据库响应缓慢,则使用此代码块的线程将受到阻碍.

var result = from item in Products where item.Price > 3 select item.Name;
foreach (var name in result)
{
    Console.WriteLine(name);
}
Run Code Online (Sandbox Code Playgroud)

似乎当前的LINQ查询规范不提供对此的支持.

有没有办法做LINQ异步编程?当结果准备好使用而没有I/O上的任何阻塞延迟时,它就像有一个回调通知.

c# linq asynchronous linq-to-sql

59
推荐指数
3
解决办法
4万
查看次数

如何将SQL中的多个内部联接转换为LINQ?

我已经掌握了LINQ-to-SQL的基础知识,但我一直在努力让JOIN正常工作.我想知道如何将以下内容转换为LINQ-to-SQL(理想情况下使用方法链接,因为这是我的首选格式).

SELECT      c.CompanyId, c.CompanyName,
            p.FirstName + ' ' + p.LastName as AccountCoordinator,
            p2.FirstName + ' ' + p2.LastName as AccountManager
FROM        dbo.Companies c
INNER JOIN  dbo.Persons p
ON          c.AccountCoordinatorPersonId = p.PersonId
INNER JOIN  dbo.Persons p2
ON          c.AccountManagerPersonId = p2.PersonId
Run Code Online (Sandbox Code Playgroud)

c# linq inner-join linq-to-sql

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

LINQ with SQLite(linqtosql)

我有一个需要存储的小项目(我选择了SQLite),我用.Net for SqliteADO DLL得到了很好的结果.

安装后,我注意到它包含一个SQLLinq.dll.在调查太多努力之前,以及因为我没有在网上看到任何好的例子,我想知道是否有人用SQLite和LINQ获得任何好的结果?

*如果linqtosql以与SQL数据库相同的方式工作,请告诉我.当我看到它时,我对Dll感兴趣,因为我之前从未使用过Linqtosql,我认为这是一个很好的尝试机会,

linq sqlite linq-to-sql

58
推荐指数
3
解决办法
4万
查看次数

使用GROUP BY和COUNT(DISTINCT)的LINQ to SQL

我必须执行以下SQL查询:

select answer_nbr, count(distinct user_nbr)
from tpoll_answer
where poll_nbr = 16
group by answer_nbr
Run Code Online (Sandbox Code Playgroud)

LINQ to SQL查询

from a in tpoll_answer 
where a.poll_nbr = 16 select a.answer_nbr, a.user_nbr distinct 
Run Code Online (Sandbox Code Playgroud)

映射到以下SQL查询:

select distinct answer_nbr, distinct user_nbr
from tpoll_answer
where poll_nbr = 16
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.但是在尝试GROUP结果时问题就出现了,因为我无法找到映射到我在这里写的第一个查询的LINQ to SQL查询(感谢LINQPad让这个过程变得更容易).以下是我发现的唯一一个给我预期结果的:

from answer in tpoll_answer where answer.poll_nbr = 16 _
group by a_id = answer.answer_nbr into votes = count(answer.user_nbr)
Run Code Online (Sandbox Code Playgroud)

这反过来会产生所有SQL查询中的丑陋和非优化:

SELECT [t1].[answer_nbr] AS [a_id], (
    SELECT COUNT(*)
    FROM (
        SELECT CONVERT(Bit,[t2].[user_nbr]) AS [value], [t2].[answer_nbr], [t2].[poll_nbr] …
Run Code Online (Sandbox Code Playgroud)

c# linq linq-to-sql

58
推荐指数
2
解决办法
14万
查看次数

Linq to SQL DateTime值是本地的(Kind = Unspecified) - 如何使其成为UTC?

是不是有一种(简单)方法告诉Linq To SQL类特定的DateTime属性应该被视为UTC(即默认情况下将DateTime类型的Kind属性设置为Utc),或者是否存在"干净"的解决方法?

我的app-server上的时区与SQL 2005 Server不同(不能更改任何),没有一个是UTC.当我将类型为DateTime的属性保留为dB时,我使用UTC值(因此db列中的值为UTC),但是当我读回值时(使用Linq To SQL),我得到DateTime的.Kind属性值为'未指定'.

问题是,当我将它'转换为UTC时,它是4小时关闭.这也意味着当它被序列化时,它最终在客户端以4小时的错误偏移(因为它使用UTC序列化).

c# sql-server datetime linq-to-sql

58
推荐指数
4
解决办法
2万
查看次数

.NET 4.0实体框架和LINQ to SQL之间有什么区别?

我正在检查第二版Professional ASP.NET MVC并实现了EF取代LINQ to SQL.我从第一本书中熟悉LINQ to SQL,但我对EF一无所知.无论如何,在阅读代码时,似乎没有任何改变,除了名称.相同的旧存储库类,相同的旧函数.

我做了一点研究.我知道LINQ不仅限于SQL.EF也不限于Microsoft系列SQL服务器.在这个2岁的问题中,人们对EF并不满意,并表示它过于复杂.但现在我在EF名下读相同的代码.只有使用LINQ to SQL的ADO.NET实体模型生成类.任何人都可以清除关于EF功能的大惊小怪,因为它现在是事实上的标准ORM吗?

.net entity-framework .net-4.0 linq-to-sql

58
推荐指数
3
解决办法
5万
查看次数

我什么时候应该处理数据上下文

我正在为应用程序编写数据访问层.访问层广泛使用linq类来返回数据.目前,为了将数据反映回数据库,我添加了一个私有数据上下文成员和一个公共保存方法.代码看起来像这样:

private DataContext myDb;
public static MyClass GetMyClassById(int id)
{
    DataContext db = new DataContext();
    MyClass result = (from item in db.MyClasss
                      where item.id == id
                      select item).Single();
    result.myDb = db;
    return result;
}

public void Save()
{
    db.SubmitChanges();
}
Run Code Online (Sandbox Code Playgroud)

这是一个粗略的过度简化,但它给出了一般的想法.有没有更好的方法来处理这种模式?每次我想访问数据库时,我是否应该实例化新的数据上下文?

c# linq linq-to-sql

56
推荐指数
3
解决办法
2万
查看次数

LINQ to SQL已被弃用吗?

早在2008年底,就LINQ to SQL的未来发生了很多争论.许多人认为微软在.NET 4.0中对实体框架的投资是LINQ to SQL没有未来的标志.我想我会在做出自己的决定之前等待,因为人们不同意.

快进18个月,我有供应商提供依赖LINQ to SQL的解决方案,我个人试了一下,非常喜欢使用它.我想这是留下来的.

但是我正在读一本新书(Ben Watson的C#4.0 How-To)和第21章(LINQ),他认为它"或多或少被微软推荐"并建议使用LINQ to Entity Framework.

我的问题是LINQ to SQL是否正式被弃用和/或权威实体(Microsoft,Scott Gu等)是否正式建议使用LINQ to Entities而不是LINQ to SQL.

linq linq-to-entities linq-to-sql

55
推荐指数
6
解决办法
2万
查看次数

如何在LINQ中使用union all?

如何在LINQ TO SQL中使用union all.我使用以下代码进行联合,然后如何将此用于union all?

List<tbEmployee> lstTbEmployee = obj.tbEmployees.ToList();
List<tbEmployee2> lstTbEmployee2 = (from a in lstTbEmployee
                                    select new tbEmployee2
                                    {
                                        eid = a.eid,
                                        ename = a.ename,
                                        age = a.age,
                                        dept = a.dept,
                                        doj = a.doj,
                                        dor = a.dor

                                    }).Union(obj.tbEmployee2s).ToList();
Run Code Online (Sandbox Code Playgroud)

linq union linq-to-sql

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