我是linq的初学者,我已经编写了这个T-SQL查询
select * from DOCUMENT_TYPES where document_id in(
select document_id from Clearance_Document where Clearance_id=(select clearance_id from clearance_id from request where request_id=3))
我想把这个T-SQL查询转换成linq,请帮帮我,谢谢
我有两个几乎相同的方法。唯一的区别是where子句(和方法名)。我刚刚包含了一个简化的linq查询。
from tableA in db.tableA
join tableB in db.tableB on tableA.id equals tableB.id
where tableB.ref == "blah"
select tableA
和
from tableA in db.tableA
join tableB in db.tableB on tableA.id equals tableB.id
where tableB.refb == "blah"
se
我是EF和数据库设计的新手。我一直在研究如何使用存储库模式和工作单元( Unit of Work ),我也看到了许多使用LINQ进行的查询。
但我有一个问题。如果将来我们更改数据库的模式,则存储库层必然会发生变化,因为实体本身将发生变化。换句话说,存储层与数据库结构紧密耦合。
但是,如果我们使用数据库本身中的存储过程封装大多数可能的事务,然后使用EF导入它们,那么数据库设计中的更改不会对存储层产生太大的影响。换句话说,这些层应该是这样的:
DATABASE TABLES <---> STORED PROCEDURES <---> EF <---> REPO
如果我有一个如下所示的linq查询,我如何检查该查询是否没有找到结果?
var LinqResult =
from a in Db.Table
where a.Value0 == "ninja"
group a by a.Value1 into b
select new { Table = b};
if(LinqResult.Count() == 0) //?
{
}
我正在尝试创建一个包含几个子查询的linq查询。我创建的查询似乎是正确的(至少在语法上是正确的),但是我没有收到任何数据发回,Fiddler显示了这个查询的错误:
public IQueryable<vGatekeeperApproval> GetGatekeeperApprovals(string UserName)
{
SystemsFormsDataContext db = new SystemsFormsDataContext();
IQueryable<vGatekeeperApproval> query
以下代码的目的是查找可用的ID。
我在写这篇文章时的想法是,每次query.Any()运行时,查询都会使用本地id变量中新增加的值再次运行。这是因为我知道在执行查询之前,不会对id进行计算。
从我的体验结果中,我可以看到这不是它的工作方式,我想知道您如何重写代码以实现其声明的目标,同时保持使用LINQ到EF的风格?
我知道如何以琐碎的方式重写-我的目标是更好地理解LINQ表达式的延迟执行及其执行上下文。
int id = 4700;
var query = from c in Advertisers
where c.ID == id
select
我希望创建一个c#类的集合,为了加快对某些属性的访问,我需要对这些类进行索引。问题是,该类包含许多对现有服务/类的引用,这些服务/类不容易序列化/反序列化,因此数据库是不够的。
class ComplexTestClass
{
public MyService Service;
public Guid Id;
public ComplexObject Object;
}
使用linq,我可以像这样查询一个集合:
complexTestClassCollection.where(complexClass => complexClass.Object.Type ==
我试图将数据库数据存储到C#类中,并使用这些数据编写查询。但是,当我使用LINQ编写查询时,我似乎不知道如何让它只返回类中的一个列。当我将查询作为“产品”(而不是"product.Description“)执行时,它会查询C#类Product中存在的所有列。下面的代码给出了查询的红色标记,错误表示
无法隐式地将类型System.Linq.IQueryable<string>转换为System.Linq.IQueryable<OnlineOrderingWebPage<Product>>。
存在显式转换。你错过演员阵容了吗?
string co
我有这个对象:
public class MyObject
{
public int Id { get; set; }
public string FieldA { get; set; }
public string FieldB { get; set; }
public string FieldC { get; set; }
public string FieldD { get; set; }
}
我有这个对象的IList<>:
IList<MyObject> MyListObject = new List<MyObjec
我需要使用Linq将ItemCode和ItemName的值放到单独的标签中。我实现了一个连接tblItem和tblInventry的查询。它以列表的形式返回所有行。查询如下,
public tblItem GetItemNameAndCode(int itemID)
{
var iNameCode = from it in DB.tblItems
join inv in DB.tblInventories on it.ItemID equals inv.ItemID
where it.ItemID == i
我在查询Linq中与实体的多到多关系时遇到问题。我基本上是试图使用Linq复制这个查询:
SELECT
Users.UserName, Roles.RoleName, Users.IsActive
FROM
Users
LEFT JOIN
UserRoles ON Users.UserID = UserRoles.UserID
LEFT JOIN
Roles ON UserRoles.RoleID = Roles.RoleID
我在Linqpad中尝试了这个查询,它运行得非常好。
Users.Join(UserRoles, u=>u.UserI
我有以下Linq查询...它可以正确执行:
from t in Tasks
where LookupTaskStarted(t.TaskId) == true
select new
{
t.TaskId,
t.Number,
Started = LookupTaskStarted(t.TaskId)
}
有没有办法将其创建为Linq- to -Sql类的属性?或者我总是要像这样引用它?
我在linq的多个插入行中遇到了问题。我有两张桌子,
订阅表
和消息表
isIdentity)SenderReceiverContent MessageID (int )
我希望Subcribe表中属于"Rock“类别的所有UserName都能收到来自我的一条相同的消息。我的代码现在出错了
var subcribe = from s in database.Subscribes
where s.SubscribeCategory == "Rock"
select s.UserN
嗨,伙计们,我正在使用一个Dto类对象,如下所示
public class TypeDTO{
public long Type { get; set; }
public string Name { get; set; }
public byte DefType { get; set; }
public byte DefCode { get; set; }
public Dictionary<int,decimal> SumOfEachType = new Dictionary<int,de
我的代码试图使用LINQ从数据库加载。现在,当我似乎接触到查询返回的内容时,就会出现ExecutionExceptionError错误的崩溃:
目前,我的代码非常简单,我有一个标准的dbml类,用于加载单个表MC:
private void RibbonButton_Click(object sender, RoutedEventArgs e)
{
MultipleChoiceDataContext t = new MultipleChoiceDataContext();
var test =
from a in t.
我在Linq语句中有一个对象"word" (参见:"from bee in world.Bees"),尽管在上一行中该对象在相同的方法中被识别。我现在不知道为什么会发生这种事。我在代码中的任何地方都使用了object这个词,没有问题。我对代码做了一些评论来强调这个问题.
这里是相关的代码片段:
public partial class Form1 : Form
{
private World word;
public Form1()
{
InitializeComponent();
word = new W
因此,经过大量工作,我发现im在使用linq到sql执行来自其他查询的查询时遇到了问题。下面看看我是如何拥有它的,我喜欢它。当我这样做时,我得到了一个Object reference not set to an instance of an object错误。最后,我有一种感觉,这是因为我如何将查询存储在变量中。NotDownloadedIds只是一个过滤过的表,所以我将它存储在一个Iqueryable <tableName>中。这样我就可以把它传递给一个方法。这是我要做的一个丑陋的问题:
var storesLeft = (from x in cDataContext.Cate
我试图使用实体框架和LINQ从数据库中检索记录。它的工作原理基本上和预期的一样,但对于带有WHERE语句的bug,我不太清楚。
var nodeId = "001";
//This works and returns the record I am looking for
var nodeDisplayName = ("#" + nodeId);
var filteredNodes = dbContext.Node.Where(n => n.DisplayName == nodeDisplayName).ToList();
//This does no
我使用来编写动态查询,但我不知道如何将列表(IEnumerable)参数传递给查询:以下是我想实现的目标:
SELECT * FROM People WHERE Role IN ('Employee','Manager')
下面是相同查询的Linq等价物:
from person in People where (new string[]{"Employee","Manager"}).Contains(person.Role)
所以我想我可以用dynamic Linq来写这个查询:
People.Where("@0.Con
我需要将sql查询转换为LINQ (查询语法),但我仍然停留在IN语句上。
如何在sql查询中为这个WHERE子句编写LINQ:
WHERE OR_ID IN (SELECT DISTINCT OR_ID
FROM OR_ORDER_WORKER_HISTORY owHist
WHERE CLIENT_RATE_ID = @clientRateId)
我有一个用Lambda表达式的聚合方法相加的整数列表:
var mylist = new int[] { 3, 4, 5 };
var result = mylist.Aggregate((a, b) => a + b);
据我所知,Lambda表达式始终可以转换为LINQ查询。这样的LINQ查询如何查找我的示例?
编辑:我理解.Sum可能会更好地在我的示例中添加数字。但是我真的很想知道这个聚合将如何使用LINQ查询。
作为对的后续,我得到了以下SQL:
SELECT Documents.*
FROM Documents
WHERE Documents.ID IN
(
SELECT Keywords.DocumentID
FROM Keywords
WHERE
Keywords.Keyword = 'KeywordA' OR
Keywords.Keyword = 'KeywordB'
GROUP BY Keywords.DocumentID
HAVING COUNT(Keywords.Keyword) = 2
)
我确实使用将
WIth Ria服务,我有一个linq查询,如下:
EntityQuery<Employee> query = from e in ctx.GetEmployeeQuery()
orderby e.DateCreated descending
select e;
然后,我想从这个查询中获得前100条记录,比如SQL select top 100 * from Employee
如何编写linq查询?