Tag: linq to sql

在Linq to SQL中处理DataContext后无法访问相关数据

重申了我的问题,旧文本如下 由于我仍然希望得到答案,我想重申我的问题。 Image我有一个带有两个列表的GUI,一个列表显示数据库tblOrders的所有条目列表,另一个列表显示每个订单中的项目。 我可以使用Linq2sql或EF从数据库中获取所有订单,如下所示: using (DataClasses1DataContext DataContext = new DataClasses1DataContext()) ListOfOrders = DataContext.tblOrder.ToList(); 我可以在列表或datagridview显示这些顺序。 然后选择其中一个作业,我想从表tblItems访问实体集合。 我可以这样做: ListOfOrders.First().tblItems.toList(); 除了我不能,因为我需要已经处理的DataContext 。 这在某种程度上是有道理的,因为我无法保证自从我检索ListOfOrders. So ideally I would like to check if there has been an addition to a tblOrder.tblItems以来没有添加到该订单的新项目ListOfOrders. So ideally I would like to check if there has been an addition to a tblOrder.tblItems ListOfOrders. So ideally […]

LINQ中的子查询位于select语句中,而不是where子句

我需要做类似以下的事情 SELECT p.name, (SELECT COUNT(p.id) FROM products WHERE products.parent_id = p.id) AS sub_products FROM products AS p 我在where子句中看到了很多子查询的LINQ示例,但是在select语句中没有这样的例子。

在SubmitChanges()之前validationLinq2Sql

任何人都可以告诉我在调用SubmitChanges() 之前是否/如何在Linq2Sql中validation数据上下文中的更改。 我的情况是我创建一个上下文,执行多个操作并添加许多插入以及其他处理任务,然后如果提交失败则回滚。 我想做的是在完成某些任务后进行某种“Validate()”调用,这样我就可以在提交整个作业之前处理它。

如何在LINQ中选择所有字段和一些新字段?

我收到了一份RDLC报告 存储在SQL DB中的日期格式为格鲁吉亚语。 我想在报告中显示日期为波斯语。 使用Linq我想要选择DB的所有字段以及一些用作波斯日期字段的新字段。 我用下面的语法: var invoices = from invoice in dbContext.eve_Invoices select new { invoice.CreatorID, invoice.DateChange, invoice.DateCreation, invoice.DatePrint, invoice.Discount, invoice.DiscountPercentage, invoice.DiscountType, invoice.Fare, invoice.ID, invoice.InvoiceStatus, invoice.NumberOfItems, invoice.Packaging, invoice.PrintID, invoice.RawPrice, invoice.RoundOff, invoice.ServiceCharge, invoice.ServingType, invoice.TableID, invoice.Tax, invoice.TotalPrice, invoice.ValidityStatus, PersianYear = invoice.DateCreation != null ? pc.GetYear((DateTime)invoice.DateCreation) : 0, PersianMonth = invoice.DateCreation != null ? pc.GetDayOfMonth((DateTime)invoice.DateCreation) : 0, […]

解析具有名称 – 值对的字符串

如何在C#中解析以下名称 – 值对的字符串: string studentDetail = “StudentId=J1123,FirstName=Jack,LastName=Welch,StudentId=k3342,FirstName=Steve,LastName=Smith” 解析此数组的目的是使用Linq to SQL在DB中插入值: [HttpPost()] public ActionResult SaveStudent(string studentDetail) { DataContext db = new DataContext(); Student student = new Student(); { student.StudentID = //StudentID student.FirstName = //FirstName student.LastName = //LastName }; db.Student.InsertOnSubmit(student); db.SubmitChanges(); return View(); } 接近这个的最佳方法是什么?

如何使用Linq to SQL将对象序列化并将对象保存为Xml

我使用FileStream将对象序列化为Xml并保存到磁盘 Stream str = new FileStream(@”serializedstate.xml”, FileMode.OpenOrCreate) XmlSerializer x = new XmlSerializer(typeof(GridState)); x.Serialize(str, new GridState { GridName= txtGridName.Text, GridColumns = GetGridColumnStates() }); 这工作正常,并在磁盘上生成Xml文件。 如何使用Linq to SQL将序列化的对象作为Xml保存到Sql Server 2008数据库的XML列中? 以及如何从数据库反序列化相同的内容?

Linq to Sql用lambda sum作为where条件

我有以下查询 from p in _context.Products where p.Purchases.Sum(item => item.CCAmount) > 0 && p.Purchases.Sum(item => item.CCAmount) > p.PayOuts.Sum((item => item.AmountPaid) select p; 基本上我正在尝试检索所有总计购买金额大于0并且其总计购买金额大于我们支付的金额的产品(我们代表其他人销售产品并以全额或部分付款方式支付)。 问题是,如果特定产品的支付表中没有条目,那么该产品不会出现在结果列表中。 但是,如果我在支付表中插入支付,那么该产品将显示在产品列表中。 它几乎就像在空集合上使用sum一样,不会像人们预期的那样进行评估,即为0.我在这里遗漏了什么吗? 谢谢你的帮助。

Linq仅查询每个唯一ID的前N行

假设我有一个IQueryable ,它将返回一个带有ID属性(列)的数据类型。 我想进一步过滤我的查询( 我不想评估查询 ),如下所示: 对于主查询中的每个唯一ID ,我想要Take(n) ,其中n是某个任意数字。 也就是说,我想只保留每个唯一ID的前n行。 我可以得到不同的ID …… var ids = query.Select(q => q.ID).Distinct(); 我可以和其他人一起Take(n) ,但是我很难将两者联系起来: query = query..Take(n); 接受的答案有效,但对于大表来说速度很慢。 我把这个问题写成了后续行动。

LINQ to SQL – 在test和dev db之间切换的最佳方法

使用LINQ to SQL ORM以编程方式在测试数据库和开发人员数据库之间来回切换的最简单方法是什么?

“SubmitChanges()”上的LINQ to SQL“1/2更新失败”

我正在使用LINQ to SQL更新类型X的对象及其子Y,然后提交更改并获取此错误 示例代码 X objX = _context.X.ToList().Where(x => x.DeletedOn == null).First(); objX.DeletedOn = DateTime.Now; EntitySet objYs = objX.Ys; Y objY = objYs[0]; objY.DeletedOn = DateTime.Now; _context.SubmitChanges(); 在SubmitChanges()上,我得到一个例外“1 of 2 Updates failed”,没有其他信息说明为什么会发生这种情况。 有任何想法吗? 另外,exception类型是ChangeConflictException