Tag: linq to entities

无法将类型’System.Linq.IQueryable’隐式转换为’System.Collections.Generic.IList’

我有一个方法: public DzieckoAndOpiekunCollection GetChildAndOpiekunByFirstnameLastname(string firstname, string lastname) { DataTransfer.ChargeInSchoolEntities db = new DataTransfer.ChargeInSchoolEntities(); DzieckoAndOpiekunCollection result = new DzieckoAndOpiekunCollection(); if (firstname == null && lastname != null) { IList resultV = from p in db.Dziecko where lastname == p.Nazwisko **select** new DzieckoAndOpiekun( p.Imie, p.Nazwisko, p.Opiekun.Imie, p.Opiekun.Nazwisko) ; result.AddRange(resultV); } return result; } 和选定位置的错误: 错误1无法将类型’System.Linq.IQueryable ‘隐式转换为’System.Collections.Generic.IList ‘。 […]

如何附加不是来自数据库的Entity Framework对象?

我完全分离了我的Entity Framework对象和我的POCO对象,我只是来回翻译它们…… 即: // poco public class Author { public Guid Id { get; set; } public string UserName { get; set; } } 然后我有一个EF对象“作者”具有相同的属性.. 所以我有我的业务对象 var author = new Author { UserName=”foo”, Id=”Guid thats in the db” }; 我想保存此对象,所以我执行以下操作: var dbAuthor = new dbAuthor { Id=author.Id, UserName=author.UserName }; entities.Attach(dbAuthor); entities.SaveChanges(); 但这给了我以下错误: 具有null EntityKey值的对象无法附加到对象上下文。 编辑:看起来我必须使用entities.AttachTo(“作者”,dbAuthor); […]

如何在另一个Expression中的单个对象上重用Expression

我觉得我错过了一些简单的东西,但是我没有找到回答我问题的文档。 我最近将一些linq投影分解为可重用的表达式。 它在集合上运行时效果很好,但我似乎无法弄清楚如何将表达式应用于另一个表达式中的单个对象。 以下是我要完成的一个示例: public class Person { public string ID { get; set; } public string Name { get; set; } } public class PersonDto { public string ID { get; set; } public string Name { get; set; } } public class Department { Person Manager { get; set; } List Employees { […]

根据FK表中的记录返回列

我有一个显示供应商的成功查询,但我现在想要添加的是显示已选择或未选择哪些供应商的列(显示为复选框列)。 这些选择存储在VendorsSelected表中,该表包含选择它们的FK ProfileID和UserName。 因此,当当前用户查看供应商时,某些供应商将匹配,而其他供应商则不会。 如何修改查询? 请注意,下面的Where子句将完成仅获取当前用户选择的供应商,但我想要的是所有供应商显示的是他们选择的每个供应商的true / false(复选框)列。 public IEnumerable BrowseVendors() { IQueryable viewModel = _db.VendorProfiles .Include(“VendorsSelected”) .Select(s => new BrowseVendorModel { ProfileID = s.ProfileID, Name = s.Name, CompanyName = s.CompanyName, City = s.City, State = s.State, DateCreated = s.DateCreated }) .Where(x => x.VendorsSelected.Select(s => s.UserName).Contains(HttpContext.Current.User.Identity.Name)) .OrderBy(v => v.ProfileID); return viewModel; }

实体或复杂类型…不能在LINQ to Entities查询中构造

为什么一个方法可以工作而另一个方法不工作,因为它们似乎都在做同样的事情,即构建一个实体。 那么我的问题是,有没有办法在L2E查询中构造实体,而不是只使用Linq或两者兼而有之? 这很好…… var queryToList = (from ac in ctx.AuthorisationChecks where wedNumbers.Contains(ac.WedNo) orderby ac.WedNo, ac.ExpAuthDate, ac.ActAuthDate select new AuthorisationCheck { Blah = ac.Blah }).ToList(); model.AuthorisationChecks = queryToList.Select(x => new AuthorisationCheck { Blah = x.Blah }).ToList(); 但是,如果我改变…… var queryToList 至 model.AuthorisationChecks queryToList // Of type List 我在标题中得到错误… The entity or complex type ‘Model.AuthorisationCheck’ cannot be constructed […]

调用ToList()时内部LINQ查询的exception

昨天我正在研究代码重构,并遇到了一个exception,我真的找不到太多的信息。 这是情况。 我们有一对EF实体,它们通过关系表具有多对多的关系。 有问题的对象看起来像这样,省去了不必要的位。 public partial class MasterCode { public int MasterCodeId { get; set; } … public virtual ICollection MasterCodeToSubCodes { get; set; } } public partial class MasterCodeToSubCodes { public int MasterCodeToSubCodeId { get; set; } public int MasterCodeId { get; set; } public int SubCodeId { get; set; } … } 现在,我尝试对这些实体运行LINQ查询。 […]

如何使用LINQ-to-Entities将数据插入特定表?

问题:为特定客户插入订单的LINQ到实体代码是什么? 更新 这是一个解决方案(请参阅下面提交的答案之一,以获得更清晰的解决方案): using (OrderDatabase ctx = new OrderDatabase()) { // Populate the individual tables. // Comment in this next line to create a new customer/order combination. // Customer customer = new Customer() { FirstName = “Bobby”, LastName = “Davro” }; // Comment in this line to add an order to an existing customer. var […]

从另一个IList 中删除一个IList 中的项

很抱歉发布这样的基本问题,我是LINQ的新手,我正试图找出最好的方法来完成每个IList的循环。 我有两个ILists与自定义dto对象。 我想从列表中删除另一个中的所有匹配项。 IList list1 = itemsbl.GetBestItems(); IList list2 = itemsbl.GetWorstItems(); 我需要从list2删除list1中的所有项目。 我一直在看Except()方法,但显然我需要我的ItemsDTO类来覆盖GetHashCode和Equals方法,但是我找不到这方面的例子。 有人可以告诉我从list2删除list1的最佳方法吗? 再次感谢

使用LINQ to Entities获取最后一个字符索引

我收到了错误: LINQ to Entities does not recognize the method ‘Int32 LastIndexOf(System.String)’ method, and this method cannot be translated into a store expression. 使用此代码判断某人的姓氏是否以某些字符开头时: persons = persons.Where(c => c.FullName.IndexOf(” “) > 0 && c.FullName.Substring(c.FullName.LastIndexOf(” “)+1).StartsWith(lastNameSearch)); 任何线索如何在不使用LastIndexOf()的情况下实现这一目标? 也许在使用ToList()从数据库中获取结果后我必须检查这个?

entity framework4中的多对多查询

我的数据库中有很多关系。 两个结束表是BlogPost和Item,中间的表是ItemBlogPost。 我需要找回与特定项目相关的所有BlogPost。 在SQL中,我会这样做: SELECT BlogPost.* FROM BlogPost JOIN ItemBlogPost ON BlogPost.ID = ItemBlogPost.BlogPost_ID WHERE ItemBlogPost.Item_ID = @Item_ID 在C#中我有类似的东西: IQueryable itemBlogPosts = from b in connection.BlogPosts where b.Items == item.ID orderby b.Content.CreateDate descending select b; 但是,标记为b.Items的行没有给出Item属性的列表,并且没有b.ItemBlogPost来查看中间表。 我也尝试过做b.Items.Contains(item)但也失败了。 如何在LINQ to EF4中完成这项工作?