Tag: linq

无法创建“匿名类型”类型的常量值。 在此上下文中仅支持原始类型或枚举类型

我对linq和entity framework非常linq 。 我试图解决一个问题,为什么以下不起作用。 产生的错误是“无法创建类型为’匿名类型’的常量值。在此上下文中仅支持基本类型或枚举类型。” 我已经尝试了这么多不同的方法,但仍然得到与原始类型有关的错误。 如果有人可以看看下面的代码并希望指出哪里出错,我将不胜感激。 public Entities.BikeData[] GetBikesWithExpiredSyncDeadline(int noOfDays) { using (OfficeEntities cxt = GetContext()) using (ReportingEntities RepCxt = GetReportingContext()) { Data.Repository.Abstract.IBikeRepository BikeRepos = new Data.Repository.Concrete.BikeRepository(); var details = (from sd in cxt.BikeDetails where sd.autoreminder == true && (sd.lastremindersent == null || sd.lastremindersent < EntityFunctions.AddDays(DateTime.UtcNow, noOfDays * -1)) && (sd.emailaddress != null && […]

如何在必要时使用ADO.NET Entity Framework加载varbinary(max)字段?

我的一个表中有一个varbinary(max)字段,但我不是每次都需要它,而且我正在寻找一种只在必要时从数据库中获取它的方法。 我正在使用ADO.NETentity framework。 怎么做?

LINQ,在映射中实现接口和exception的实体

我正在使用LINQ的存储库模式,有IRepository.DeleteOnSubmit(T Entity)。 它工作正常,但当我的实体类有接口时,如下所示: public interface IEntity { int ID {get;set;} } public partial class MyEntity: IEntity { public int ID { get { return this.IDfield; } set { this.IDfield=value; } } } 然后尝试删除这样的实体: IEntity ie=repository.GetByID(1); repoitory.DeleteOnSubmit(ie); 投 成员’IEntity.ID’没有支持的SQL转换。 从DB工作中获取数据,但删除和插入不起作用。 如何使用DataContext的接口? 这里是: exception消息:成员’MMRI.DAL.ITag.idContent’没有支持的SQL转换。 码: var d = repContent.GetAll().Where(x => x.idContent.Equals(idContent)); foreach (var tagConnect in d) <- […]

多列不区分大小写的组

反正有没有做LINQ2SQL查询做类似的事情: var result = source.GroupBy(a => new { a.Column1, a.Column2 }); 要么 var result = from s in source group s by new { s.Column1, s.Column2 } into c select new { Column1 = c.Key.Column1, Column2 = c.Key.Column2 }; 但忽略了分组列内容的情况?

Linq SUM对象?

我有一个代表商业数据的对象。 基本上,它是一个聚集一些总数的对象: public class MyClass{ public double MyDataOne {get;set;} public double MyDataTwo {get;set;} public double MyDataThree {get;set;} public static MyClass operator +(MyClass data1, MyClass data2){ return new MyClass{MyDataOne = data1.MyDataOne + data2.MyDataOne, MyDataTwo=data1.MyDataTwo+data2.MyDataTwo, MyDataThree=data1.MyDataThree+data2.MyDataThree }; } } 现在,如果我有一个IEnumerable myClasses ,是否有一些我可以在MyClass中实现这一点:? myClasses.Sum(d=>d); 因为对我来说,添加对象的方式必须是对象的知识,而不是调用者的知识(如果有一天我有一个数据更多,我不想查看我的整个代码来查看它的使用位置) 。 谢谢

LINQ加入两个表

我有两个表说A和B.一个cols是GUID,someintVar,someMoreIntvar B col是GUID,someItemNO,SomeItemDesc 现在对于一个GUID,我在表A中只有一行。但是对于相同的GUID,我可以有多行。 现在我想基于GUID查询数据库并选择类中的值。 该类将具有一个列表,该列表将包含来自第二个表的不同行。 我该怎么做? 现在我根据该GUID的第二个表中有多少行在结果中获取了很多项。 var itemColl = from p in db.A join item in db.B on p.CardID equals item.CardID where p.CardID == “some GUID” select new { p.CardID, p.secondCol, p.ThirdCol, item.ItemNo // How to add them in a collection or list. };

DataContext.Refresh()的正确用法是什么?

我在内存中有一个LinqToSql对象,它在数据库的字段值应该在对象的生命周期内发生变化。 所以我需要定期检查一切是否仍然同步。 我原以为能够这样做: myDataContext.Refresh(RefreshMode.KeepCurrentValues, myObj); 但不幸的是,这似乎没有效果; 即使DB值已更改, myObj上的值也保持不变。 有关此方法的MSDN文档非常缺乏。 谁能告诉我这里缺少什么?

LINQ:获取表详细信息

我正在使用LINQPad,我想知道表的架构细节。 我知道我是用SQL做的: SELECT column_name,* FROM information_schema.columns WHERE table_name = ‘{table_name}’ ORDER BY ordinal_position 我怎么能用LINQ做到这一点?

Linq记忆问题

因为我对linq很新,所以我想在下面的例子中询问我的理解是否正确。 让我们假设我有非常大的动物名称集(100k记录),我想提交它们并以非常耗时的方法(2周)处理过滤的项目。 RunWithLinq()和RunWithoutLinq()方法完全相同。 这是真的,使用第一种方法,原始(大)集合将在离开方法后留在内存中,并且不会被GC触及,而使用无linq方法时, GC将删除该集合? 我会感激一点解释。 class AnimalProcessor { private IEnumerable animalsToProcess; internal AnimalProcessor(IEnumerable animalsToProcess) { this.animalsToProcess = animalsToProcess; } internal void Start() { //do sth for 2 weeks with the collection } } class Program { static void RunWithLinq() { var animals = new string[] { “cow”, “rabbit”, “newt”, “ram” }; var filtered = […]

使用LINQ展平嵌套词典

所以我有一个Dictionary<int, Dictionary> myObjectsforms的Dictionary<int, Dictionary> myObjects ,我想尽可能简单地将它展平为List flattenedObjects 。 我试图提出一个聪明的解决方案,但到目前为止,我已经完成的工作是一个解决方案,有两个嵌套的foreach -loops迭代所有元素,但我想应该有一个更好的方法来实现这一点LINQ。