Tag: linq to sql

如何识别拼写不同的相似单词

我想从数据库中筛选出重复的客户名称。 单个客户可能有多个具有相同名称的系统条目,但拼写上的差异很小。 所以这是一个例子:一个名为Brook的客户可能有三个条目进入系统: 布鲁克伯塔 布鲁克伯塔 Biruk Berta 我们假设我们将此名称放在一个数据库列中。 我想知道识别此类重复的不同机制,例如100,000条记录。 我们可以在C#中使用正则表达式来迭代所有记录或其他一些模式匹配技术,或者我们可以将这些记录导出到最适合此类查询的内容(具有正则表达式function的SQL))。 这就是我认为的解决方案 编写C#代码来遍历每条记录 只按顺序获取辅音字母(在上述情况下:BrKBrt) 从其他记录中搜索相同的辅音模式,考虑类似的声音字母,如(C,K)(C,S),(F,PH) 所以请转发任何想法。

如何将我的属性添加到代码生成的Linq2Sql类属性?

我想为Linq 2 Sql类属性添加属性。 例如,此列可以在用户界面中浏览,也可以在UI中自读,目前为止。 我考虑过使用模板,有谁知道如何使用它? 还是别的什么? 一般来说,您是否会使用代码生成的类来解决这个问题?

如何使用Dynamic Linq进行左外连接?

我试图在这里模仿左外连接,但使用动态linq扩展方法。 是)我有的: public static IQueryable SelectMany(this IQueryable source, string selector, string resultsSelector, params object[] values) { if (source == null) throw new ArgumentNullException(“source”); if (selector == null) throw new ArgumentNullException(“selector”); // Parse the lambda LambdaExpression lambda = DynamicExpression.ParseLambda( source.ElementType, null, selector, values); // Fix lambda by recreating to be of correct Func type in case […]

是否可以使用Linq to Sql的SqlGeography?

我一直在尝试使用Microsoft.SqlServer.Types.SqlGeography遇到很多问题。 我完全知道在Linq to Sql中对此的支持并不是很好。 我尝试了很多方法,从预期的方式开始( geography数据库类型, SqlGeography CLR类型)。 这会产生NotSupportedException ,这是通过博客广泛讨论的。 然后,我将geography列作为varbinary(max) ,因为geography是存储为二进制的UDT。 这似乎工作正常(使用一些二进制读取和写入扩展方法)。 但是,我现在遇到了一个相当模糊的问题,这似乎并没有发生在很多其他人身上。 System.InvalidCastException:无法将类型为“Microsoft.SqlServer.Types.SqlGeography”的对象强制转换为“System.Byte []”。 迭代查询时, ObjectMaterializer会抛出此错误。 它似乎只发生在包含地理列的表隐式包含在查询中时(即使用EntityRef属性进行连接)。 System.Data.Linq.SqlClient.ObjectReaderCompiler.ObjectReader`2.MoveNext() 我的问题:如果我将geography列检索为varbinary(max) ,我可能会发现反向错误:无法将byte[] SqlGeography为SqlGeography 。 我明白了。 我没有。 我对部分LINQ to SQL类有一些隐藏二进制转换的特性……那可能是问题吗? 任何帮助表示赞赏,我知道可能没有足够的信息。 附加function: Visual Studio dbml Designer中具有“服务器数据类型”= geography生成此错误: The specified type ‘geography’ is not a valid provider type. Visual Studio dbml Designer中没有“服务器数据类型”的geography列会生成此错误: Could not format node ‘Value’ […]

多态性:ORM实体是域实体还是数据实体?

我有一个BankAccount表。 LINQ to SQL生成一个名为“BankAccount”的类,如下所示。 [global::System.Data.Linq.Mapping.TableAttribute(Name=”dbo.BankAccount”)] public partial class BankAccount : INotifyPropertyChanging, INotifyPropertyChanged 现在,作为一个新手,我自己新创建域对象。 请参阅IBankAccount接口和FixedBankAccount类。 关键点在于存在多态行为–IBankAccount可以是FixedBankAccount或SavingsBankAccount。 对于这个例子的另一个问题,我有以下两条评论。 @mouters:“你的存储库对象和域对象很奇怪 – 你的存储库是不是只返回域对象?” @SonOfPirate:“存储库应该使用工厂来根据从数据存储中检索的数据创建实例。” 质询 1)我手动创建域实体。 这是错误的方法吗? 如果是错的,LINQ to SQL类如何处理多态? 如何将方法添加到这些类? 2)存储库应如何使用工厂根据从数据存储中检索的数据创建实例? 任何代码示例或参考? 3)它是否满足单一责任原则? 码 public interface IBankAccount { int BankAccountID { get; set; } double Balance { get; set; } string AccountStatus { get; set; } void FreezeAccount(); […]

最佳实践:将LINQ查询结果转换为DataTable而不进行循环

将LINQ-Query结果转换为新的DataTable的最佳做法是什么? 我能找到一个比每个结果项更好的解决方案吗? 编辑 AnonymousType var rslt = from eisd in empsQuery join eng in getAllEmployees() on eisd.EMPLOYID.Trim() equals eng.EMPLOYID.Trim() select new { eisd.CompanyID, eisd.DIRECTID, eisd.EMPLOYID, eisd.INACTIVE, eisd.LEVEL, eng.EnglishName }; 编辑2:我有例外: 除Contains()运算符外,本地序列不能用于查询运算符的LINQ to SQL实现。 当我尝试执行查询并在此处找到解决方案IEnumerable.Except不会工作,所以我该怎么办? 并需要linq的帮助

Linq“无法将表达式转换为SQL,无法将其视为本地表达式。”

我从这个问题开始,我在那里回答,现在我在这里问更基本的问题。 我已将查询简化为: var q = from ent in LinqUtils.GetTable() from tel in ent.Telephones.DefaultIfEmpty() select new { Name = ent.FormattedName, Tel = tel != null ? tel.FormattedNumber : “” // this is what causes the error }; tel.FormattedNumber是一个将Number和Extension字段组合成一个整齐格式化的字符串的属性。 这是导致的错误: System.InvalidOperationException: Could not translate expression ‘Table(Entity).SelectMany(ent => ent.Telephones.DefaultIfEmpty(), (ent, tel) => new f__AnonymousType0`2(Name = ent.FormattedName, Tel = […]

LINQ和分页

我们需要使用LINQ从数据库中获取数据。 我们现在需要实施分页。 我想我们一次需要获取10条记录,当我们点击Next按钮时,它将从db获取接下来的10条记录。 请指导我代码。 谢谢

获取对象内的所有关联/复合对象(以抽象方式)

业务 : 我有一个支付系统,可以通过GiftCoupon,ClubMembershipCard等支付。一个支付本身可以有多个支付组件 分类 : 我有一个付款类。 它有支付组件,如GiftCouponPayment,ClubMembershipCardPayment,CashPayment等。 每种组件类型都满足通用接口IPaymentComponent。 我使用有关现有类型的知识实现了它。 问题 1)如何以抽象的方式实现这个function – 不知道存在哪些类型? 这意味着它需要适用于实现IPaymentComponent接口的所有类型。 2)如果无法在LINQ to SQL中实现它,是否可以在Entity Framework中实现? 3)当LINQ to SQL在Payment对象中生成GiftCouponPayment实体时,它是关联/聚合还是组合? 注意:我使用LINQ to SQL作为ORM。 GiftCouponPayment和Payment是自动生成的类,这些对象由ORM创建。 我通过使用部分类为这些类添加了更多function。 注意:在数据库中,每个PaymentComponent(例如GiftCouponPayment)都有自己的属性(例如CouponValue,CardValue等)。 因此,每层次表不会很好 。 我们需要单独的表格。 那条线路有解决方案吗? 注意:此付款之前,数据库中已存在GiftCouponPayment。 我们需要使用客户提供的GiftCouponPaymentID来识别GiftCouponPayment对象。 我们只需要更新此表中的PaymentID列。 泄漏抽象是指任何已实现的抽象,旨在减少(或隐藏)复杂性,其中底层细节未被完全隐藏 LINQ to SQL Diagram 参考 : entity framework4,inheritancevs扩展? 如何选择inheritance策略http://blogs.msdn.com/b/alexj/archive/2009/04/15/tip-12-choosing-an-inheritance-strategy.aspx 流畅的API示例 – http://blogs.msdn.com/b/adonet/archive/2010/12/14/ef-feature-ctp5-fluent-api-samples.aspx C#代码 public interface IPaymentComponent { int MyID { […]

Linq – 左连接多个(OR)条件

我需要在条件为OR而不是AND s的多个条件下进行左连接。 我已经找到了很多后者的样本,但我很难为我的场景找到正确的答案。 from a in tablea join b in tableb on new { a.col1, a.col2 } equals new { b.col1, b.col2 } group a by a into g select new () { col1 = a.col1, col2 = a.col2, count = g.Count() } 适用于所有条件必须匹配的连接。 我需要让连接匹配on a.col1 = b.col1 OR a.col2 = b.col2 。 我知道这一定很容易但我在这个问题上一片空白! 编辑: […]