Tag: linq to entities

LINQ OrderBy Name ThenBy ChildrenCollection.Name

在LINQ中有没有办法做一个OrderBy,然后用ThenBy做一个ThenBy,使用父对象的子进行二次排序? _repository.GetActiveDepartmentGroupsWithDepartments().OrderBy(c => c.DepartmentGroupName).ThenBy(c => c.Departments.OrderBy(d => d.DepartmentName)) 在上面的例子中,c.Departments是一个EntityCollection。 顺便说一句:当我尝试上面的内容然后在其上执行ToList()时,我收到此错误: DbSortClause expressions must have a type that is order comparable. Parameter name: key 在此先感谢任何帮助或指导。

Linq to Entities(EF 4.1):如何使用中间的通配符(’%term%term%’)执行SQL LIKE?

我想搜索一下: Post Cereal 得到这个: Post Honey Nut Cereal 那里的外卡是空格。 我知道我可以为每个术语做一个SPLIT和一系列ANDs和Contains()并转换为Linq Expression作为规范对象,但是在发送给SQL的术语中是不是有办法表示通配符? 我查看了Linq to SQL中的SQL函数,但我不确定它在Linq to Entities中是什么。 我想做这样的事情: term = ‘%’ + term.Replace(‘ ‘, ‘%’) + ‘%’; db.table.where( p => System.Data.Objects.SqlClient.SqlFunctions .SqlMethods.Like(p.fieldname, term) ); 有什么建议?

LINQ to Entities无法识别方法’System.DateTime ToDateTime(System.String)’方法

我试图将一个应用程序转换为EntityFrameWork codefirst。 我现在的代码是 string sFrom =”26/12/2013″; select * FROM Trans where CONVERT(datetime, Date, 105) >= CONVERT(datetime,'” + sFrom + “‘,105) 我试过了 DateTime dtFrom = Convert.ToDateTime(sFrom ); TransRepository.Entities.Where(x =>Convert.ToDateTime(x.Date) >= dtFrom) 但是我得到了这样的错误 LINQ to Entities无法识别方法’System.DateTime ToDateTime(System.String)’方法 请提前帮助,谢谢

entity framework子查询

伙计我是Entity Framework的新手,我遇到了一个问题,我一直试图解决这个问题。 基本上我有4个实体:用户,组,书籍和阅读列表。 用户可以加入组,组可以包含由readingList定义的书籍。 我正在尝试显示特定组的书籍列表,SQL如下所示: SELECT * FROM Books b WHERE b.Id IN ( SELECT BookID FROM ReadingList rl WHERE rl.GroupID = ‘3’) 我通过从UserRepository查询当前用户来确定要搜索的GroupID,目前“按组获取书籍”方法如下所示: // Get books by group public IQueryable GetGroupBooks(string username) { UserRepository userRepository = new UserRepository(); int groupId = userRepository.GetUserGroupId(username); IQueryable q = from b in entities.Books where b.Id == 7 // […]

更新entity framework模型

我刚开始使用EF并发现它很酷,但我遇到了一个问题, 问题: 我更改了表User中的列的数据库模式,之前是Varbinary(50)然后我将其更改为VarChar(50),然后在MyModel.edmx设计器中我选择了“从数据库更新模型”,点击完成后我收到了这个错误。 错误: 2019年错误:指定的成员映射无效。 ‘LearnDBModel.User’类型中成员’Email’的类型’Edm.Binary [Nullable = False,DefaultValue =,MaxLength = 100,FixedLength = False]’与SqlServer.varchar不兼容[Nullable = False,DefaultValue =, MaxLength = 50,Unicode = False,FixedLength = False]’成员’Email’,类型为’LearnDBModel.Store.User’。 让我知道如何解决它

在LINQ to Entities查询中包含()

我的ASP.NET MVC 3项目中有以下模型: public class Task { public int Id { get; set; } public DateTime CreatedOn { get; set; } public TaskStatus Status { get; set; } } public class TaskStatus { public int Id { get; set; } public string Description { get; set; } } 作为参考,这是我的DbContext类: public class TaskManagerSets : DbContext { […]

每组操作的可重用ObjectContext或新ObjectContext?

我是entity framework的新手,我刚开始在空闲时间玩它。 我遇到的一个主要问题是如何处理ObjectContexts。 通常优先/推荐这些: 这个 public class DataAccess{ MyDbContext m_Context; public DataAccess(){ m_Context = new MyDbContext(); } public IEnumerable GetSomeItems(){ return m_Context.SomeItems; } public void DeleteSomeItem(SomeItem item){ m_Context.DeleteObject(item); m_Context.SaveChanges(); } } 或这个? public class DataAccess{ public DataAccess(){ } public IEnumerable GetSomeItems(){ MyDbContext context = new DbContext(); return context.SomeItems; } public void DeleteSomeItem(SomeItem item){ MyDbContext context […]

Linq to Entities多对多选择查询

我对以下查询感到茫然,这是普通T-SQL中的花生。 我们有三个物理表: 乐队(PK = BandId) MusicStyle(PK = MuicStyleId) BandMusicStyle(PK = BandId + MusicStyleId,FK = BandId,MusicStyleId) 现在我要做的是获取一个链接到Band的MusicStyles列表,其中包含一个特定搜索字符串的名称。 带名应该在结果中。 T-SQL将是这样的: SELECT b.Name, m.ID, m.Name, m.Description FROM Band b INNER JOIN BandMusicStyle bm on b.BandId = bm.BandId INNER JOIN MusicStyle m on bm.MusicStyleId = m.MusicStyleId WHERE b.Name like ‘%@searchstring%’ 我如何在Linq To Entities中写这个? PS:由于某些奇怪的原因,StackOverflow不允许搜索字符串’many to many’…

将entity framework模型从Web项目移动到类库中

我正在使用Entity Framework,并且最近意识到将EF模型放在同一解决方案中的另一个项目中的好处,以便我可以从中构建多个UI。 我将其移动到新的类库项目并更新了对Web项目中实体的所有引用,以使用项目生成的新dll。 除了一个小障碍外,一切都很顺利。 当我将EF移动到新项目时,不知何故它仍然从web项目中的web.config读取它的连接字符串(不要问我怎么,因为我没有线索)。 我在EF设计器中使用了“从数据库更新模型”并且没有找到连接字符串(正如我将其移动到新项目时所预期的那样)所以我使用向导生成了一个新的连接字符串,它做得很好。 新的连接字符串现在位于类库项目中的App.config中。 属性窗口中的连接字符串现在是正确的,设计人员正在从App.Config中读取它。 我继续并从Web项目中的Web.Config中删除了连接字符串。 现在运行应用程序时出现以下错误: 指定的命名连接在配置中找不到,不打算与EntityClient提供程序一起使用,或者无效。 如果我将连接字符串粘贴回Web.Config,它一切正常。 我不想从头开始创建一个新的EF模型,因为它是一个相当复杂的模型,我从数据库中提取后做了很多重组。 我已经把生成的CS文件以及edmx文件中的XML倾倒了,找不到任何有用的东西。 任何帮助深表感谢。 显然现在,直到我弄明白,我只是将连接字符串留在web.config中,因为无论出于何种原因,这似乎都有效。

更新Entity Framework中的现有EntityCollection

我尝试使用链接到实体,我想在我的应用程序中直接使用我的实体。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using Calandar.Business.Manager.Data; namespace Calandar.Business.Models.Args { public class SaveExpertArgs { public ExpertEntity Expert { get; set; } public SaveExpertArgs(ExpertEntity expert) { Expert = expert; } } } public ExpertEntity SaveExpert(SaveExpertArgs args) { string connString = ConfigurationManager.ConnectionStrings[“CalendarContainer”].ConnectionString; using (CalendarContainer dbContext = new CalendarContainer(connString)) { ExpertEntity expert = (from […]