Tag: linq to sql

如何在Linq to SQL中使用distinct with group

我正在尝试将以下sql转换为Linq 2 SQL: select groupId, count(distinct(userId)) from processroundissueinstance group by groupId 这是我的代码: var q = from i in ProcessRoundIssueInstance group i by i.GroupID into g select new { Key = g.Key, Count = g.Select(x => x.UserID).Distinct().Count() }; 当我运行代码时,我一直收到Invalid GroupID。 有任何想法吗? 看起来不同的是搞砸了…… 这是生成的sql: SELECT [t1].[GroupID] AS [Key], ( SELECT COUNT(*) FROM ( SELECT DISTINCT [t2].[UserID] FROM […]

可以使用Linq在Sql和DataTable之间编写连接吗?

我有一个过程,根据时间戳从多个数据库(MySql)中提取客户信息。 我将这些数据存储到DataTable 。 数据表表示现有客户信息的更新以及新客户信息。 我想基于一个常量值, CompanyID和CustomerID删除目标数据库(SqlServer)中的任何欺骗。 所以,我认为连接会给我目标数据库中的dupes的RecordID,将List (或某些集合机制)传递给DELETE方法。 是)我有的: using (var context = new DataContext(SqlConnection)) { var tblSource = context.GetTable(); var dupeIDs = from currCust in tblSource join newCust in myTable.AsEnumerable() on currCust.CompanyID equals newCust.Field(“CompanyID”) where currCust.CustomerID.Equals(newCust.Field(“CustomerID”) select currCust.RecordID; } 这显然不起作用。 我将稍微更新确切的错误消息,但这不会编译。 首先,我的连接语法是否正确我想要实现的目标? 其次,如何编写这个Linq来连接DataTable和目标SqlServer数据库? 事后想想 – 一旦我有一个dupe RecordID集合,是否有可能使用Linq来删除目标数据库中的记录? 编辑为了澄清这个过程,我有像这样的传入数据表并包含在DataSet : Table1 CompanyID CustomerID Field1 Field2 […]

使用编译的查询加速Linq到Sql

我已经在我的项目中将linq应用于sql并且它花了很多时间所以我进行了搜索以使其快速进行搜索并从此处获取参考 我的.cs代码是 public static Func<DataClassesDataContext, int, IQueryable> editordetail1 = CompiledQuery.Compile((DataClassesDataContext db, int a) => from p1 in db.editor_j_infs where p1.ed_journal_id == a orderby p1.editor_id descending select p1); //Its my precompile process public void editordetail() { DataClassesDataContext db = new DataClassesDataContext(); var rr = editordetail1(db,Convert.ToInt32(Server.HtmlEncode(Request.Cookies[“j_id”].Value))); if (rr.Count() != 0) { txt_jtitle.Text = rr.First().j_title; txtissn_p.Text = rr.First().issn_p; […]

常规和编译的Linq到SQL之间的等价?

我正在努力将一些现有的Linq转换为SQL 编译查询,部分使用这篇有用的文章作为指南。 以下是我原始陈述之一的示例: private IQueryable GetWidgetQuery() { return db.Widgets.Where(u => (!u.SomeField.HasValue || !u.SomeField.Value)); } 这是我尝试创建编译的查询: private static readonly Func<DBDataContext, IQueryable> GetWidgetQuery = CompiledQuery.Compile((DBDataContext db) => db.Widgets.Where(u => (!u.SomeField.HasValue || !u.SomeField.Value))); 我在查看此查询的标准和编译化身之间的差异时遇到了一些麻烦。 假设我的语法正确,编译后的查询是否会返回与标准查询相同的数据,只是使用编译查询提供的优势?

Linq将sql转换为对象列表

请考虑以下表格: TblDocument docID, levelID, name 101, 201, AAA 102, 201, BBB 103, 201, CCC 104, 202, DDD 105, 202, EEE 的tblpage pgID, docID, pgNo 1, 101, 1 2, 102, 1 3, 102, 2 4, 103, 1 5, 104, 1 6, 105, 1 TblFieldName fieldNameID, levelID, fieldName 1, 201, WrittenBy 2, 201, VerifiedBy 3, 201, DocumentName […]

将LINQ扩展为SQL生成的类

我已经选择LINQ to SQL作为ASP .NET MVC3项目的ORM框架。 在我面临需要在注册表单中添加额外字段“确认密码”之前,一切都很好。 正如在SO上的一个问题中提到的那样(遗憾的是我目前无法找到它),最好使用接口将生成的LINQ扩展为具有validation属性的SQL类,而不是使用另一个类来存储validation属性。 所以我们走了: public interface IRegTry { [Required] [Email] string EMail { get; set; } [Required] [StringLength(100, ErrorMessage = “Should not exceed 100 symbols”)] string FirstName { get; set; } [Required] string Password { get; set; } } [MetadataType(typeof(IRegTry))] public partial class RegTry : IRegTry { } RegTry类是基于数据库实体由LINQ to SQL生成的类。 […]

SQL 2 LINQ查询(由数据绑定调用)完全冻结WPF应用程序

今天早些时候,我正在寻找一个非常奇怪的错误…我最终将其追溯到似乎导致问题的原因。 原始报告可以在这里找到: 原始问题 细节已经改变,足以保证一个新问题。 有时看起来我的应用程序,并非所有时间,当它到达以下LINQ查询时冻结: using (NetworkDatabaseContext db = new NetworkDatabaseContext(UISession.ConnectionString)) { Ballast ballast = db.Ballasts.FirstOrDefault(b => b.NetworkId == UISession.NetworkId && b.ShortAddress == this.innerBallast.ShortAddress && b.ControllerSerial == this.controllerSerial); 这就是它的样子: 没有回应http://sofzh.miximages.com/c%23/www.freeimagehosting.net 大部分时间这种方法都很好……但是时不时会锁定。 此代码是BallastListItem类的一部分。 此类的项目绑定到页面上的ListBox: 代码是DisplayName属性getter的一部分: public string DisplayName { get { using (NetworkDatabaseContext db = new NetworkDatabaseContext(UISession.ConnectionString)) { Ballast ballast = db.Ballasts.FirstOrDefault(b => b.NetworkId == UISession.NetworkId […]

如何在后台线程中连接到远程服务器上的数据库?

我有一个Windows窗体,我在其上显示本地数据库中的数据。 我还要连接到远程数据库,并从那里显示一些其他数据..但是,这个远程数据库可能会关闭或缓慢。 我尝试连接到此远程数据库时,我不希望UI冻结。 所以对线程或线程安全一无所知,这是我的一个例子: RemoteDataContext rdt; private void GetRemoteDataContext() { rdt = new RemoteDataContext(RemoteServerConnectionString); } private void FillFromRemoteDataContext() { lblTest.text = rdt.TestTable.First().TestField; } private void Form1_Shown(object sender, EventArgs e) { Thread t = new Thread(new ThreadStart(new delegate { try { GetRemoteDataContext(); FillFromRemoteDataContext(); } catch { } // ignore connection errors, just don’t display data ); […]

如何在不提交和重新查询的情况下获取记录的ID?

我有一个设置为自动增量的ID(显然是int)。 var dc = new DataContext([STRING]); var usersTable = dc.GetTable(); var user = usersTable.FirstOrDefault(o => o.Username.Equals(“NAME”)); if (user == null) { user = new Audit_User() { Username = “NAME” }; usersTable.InsertOnSubmit(user); } //HERE – I need access to the user Id dc.SubmitChanges(); 有关更多上下文,请参阅标签。

LINQ to SQL:来自两个不相关的表的数据,按日期排序

我有两个表tblActionLog和tblLoginLog 。 这是tblActionLog : tblActionLog ———— ID (int) Happened (DateTime) …etc. 这是tblLoginLog : tblLoginLog ———– ID (int) LoginDate (DateTime) …etc. 现在我想要一个GridView ,将来自这两个表的信息相互交错,以便对它们各自的日期信息进行排序,例如: LOG OF STUFF ——————————- DATE | WHAT 2009-09-09 | Anderson logged in. 2009-09-08 | Smith made an action. 2009-09-08 | Smith logged in. 2009-09-06 | Anna made an action. 2009-09-04 | Smith made […]