Tag: entity framework 4

如何模拟LINQ to Entities助手,例如’SqlFunctions.StringConvert()’

我正在使用EF 4,并尝试使用Moq对以下行进行unit testing: var convertError = models .Where(x => SqlFunctions.StringConvert((decimal?) (x.convert ?? 0)) == “0”) .Any(); 并且看起来SqlFunctions.StringConvert()会在检测到上下文被SqlFunctions.StringConvert()时抛出。 它给出了一个错误说: 只能从LINQ到实体调用此函数 是否有可能告诉SqlFunctions.StringConvert返回一个模拟对象,以便我可以摆脱这个错误?

找不到Entity Framework 4注释

我正在尝试使用注释将POCO类映射到我的数据库表。 我需要使用Table注释来指定我的表的名称,但我无法解析Table注释。 注意:我导入了System.Data.Entity命名空间但它不起作用。 我必须导入哪个命名空间才能使用EF注释? 注1我的意思是: [Table(“my_table”)] public class MyClass { // … } 注2: My Entity Framework dll是v4.0.30319

LINQ to SQL查询在结果中具有错误的值

我有一个LINQ查询具有不正确的结果,但是当我分析生成的SQL时,SQL结果是正确的。 ApplicationsEntities context = new ApplicationsEntities(); var query = from documentation in context.Documnetations where documentation.Application_Version_ID == app_ver_id orderby documentation.Name select documentation; docs = query.ToList(); 我得到两个重复:“如何安装Office 2003”和“如何安装Office 2003” 下面是配置文件SQL的输出: 从生成的SQL中分配结果会发生什么?

entity framework代码首先不保存后延迟加载

我的数据库中有一个查找表和一个数据表。 我将以性别和人为例。 所以,让我们说性别表看起来像这样: Id Code 1 Male 2 Female 而person表看起来像这样: Id Name GenderId 1 Bob 1 2 Jane 2 我首先在EF代码中建模了两个表,如下所示: public class Gender { public int Id {get;set;} public string Code {get;set;} } public class Person { public int Id {get;set;} public string Name {get;set;} public int GenderId {get;set;} public virtual Gender {get;set;} } 如果我读了一个已经在数据库中的人,那么我可以访问person.Gender.Code没有问题。 […]

如何在Entity Framework中的同一查询中使用Include和Anonymous Type?

在如何计算使用Where In Entity Framework中的关联实体我得到此查询 但是当我访问queryResult [0] .post.Category或queryResult [0] .post.Tags时它总是空的,因为我没有使用Include。 包括不适用于Projection,正如微软在最后一项所述: http : //msdn.microsoft.com/en-us/library/bb896317.aspx var queryResult = (from post in posts join comment in comments.Where(x=> x.IsPublic) on post.Id equals comment.Post.Id into g select new { post, post.Author, post.Tags, post.Categories, Count = g.Count() }) 如何在同一个查询中获取Count,并包含与标签和类别的关系? 为什么EF关系修复不起作用?

EF4.1多个嵌套实体包含获取NotSupportedException?

编辑:根据测试更新了问题描述 – 2011年9月12日。 我有这个查询,每当我调用.ToList()时抛出NotSupportedException(“不支持指定的方法。”)。 IQueryable query = db .FileDefinitions .Include(x => x.DefinitionChangeLogs) .Include(x => x.FieldDefinitions.Select(y => y.DefinitionChangeLogs)) // bad .Include(x => x.FieldDefinitions.Select(y => y.FieldValidationTables)) // bad .Where(x => x.IsActive); List retval = query.ToList(); 如果我注释掉我评论为“坏”的任一行,那么查询就可以了。 我也尝试在我的对象模型中包含不同的嵌套实体,效果相同。 包括任何2将导致崩溃。 通过嵌套,我的意思是导航属性的导航属性。 我也尝试将.Include方法与字符串路径一起使用:结果相同。 我的表结构如下所示: 这显然使用MySQL 5.1(显然是InnoDB表)作为MySQL Connector / NET 6.3.4的数据库存储。 所以我的问题是:为什么这不起作用? 注意:如果我明确加载此链接中的相关实体,我可以让它工作。 但我想知道为什么EF讨厌我的数据模型。 解答:MySQL Connector显然无法处理第二个嵌套实体包含。 它抛出NotSupportedException,而不是.NET EF。 当我使用EF4.0尝试这个时,同样的错误也出现了,但我当时的研究让我相信它是导致问题的自我跟踪实体。 我尝试升级到最新的Connector,但它开始导致Out of […]

DbContext不会发布SQLite数据库

首先,这些是我的意图: 在SQLite上创建一个DbContext 读/写它 关闭背景 将文件移动到另一个位置 1-3点工作完美。 当我尝试移动数据库时,问题就开始了。 我得到一个错误说明: ‘The process cannot access the file because it is being used by another process.’ 我该如何解决这个问题? 首先,我创建一个上下文。 我必须在几种方法中使用它,我不想在每次需要时创建它。 所以我将它存储为成员。 _sqliteContext = new SqlLiteContext(sqliteContextName); 然后我想访问一个名为sync的表并获取其最新条目。 var sync = _sqliteContext.Syncs.OrderByDescending(s => s.Date); _lastSync = sync.Any() ? sync.First().Date : new DateTime(0); 而已。 然后我关闭上下文。 _sqliteContext.Dispose(); 并尝试移动文件。 File.Move(sqliteUploadLocation, sqliteDownloadLocation); 这是我得到例外的地方。 当我用插入替换选择时,如下所示: var sync […]

使用Entity Framework加入视图时使用.Include()

我使用索引视图,这是一个没有任何关系的实体(与我的表实体的关系将是更好的,但这似乎几乎不可能实现)。 这个视图由4个FK组成,它们共同形成PK: PortalID CategoryID BranchID CompanyID 现在我加入这个视图来选择一组像这样的公司: var companies = (from c in database.Companies.FindAll().Include(“City”) join l in database.CompanyList.FindAll() on c.ID equals l.CompanyID where l.PortalID == 9 && l.BranchID == 1597 select c).Take(10); 实体公司与表格(城市ID,城市)有关联,我希望包含并完美地运作。 但是,当我加入视图时,.Include()被完全忽略,从而导致查询没有连接到cities表。 正如您可能已经使用存储库模式得出结论而FindAll()返回IQueryable并且我已经手动将Include扩展添加到IQueryable,如下所示: public static IQueryable Include(this IQueryable sequence, string path) { var objectQuery = sequence as ObjectQuery; if (objectQuery != null) return […]

entity frameworkCTP4代码优先:映射受保护的属性

我想在模型上使用延迟加载集合,但我希望通过单独的方法完成添加/删除function。 所以这样的事情: class Model { protected virtual ICollection _somethings { get; set; } public IEnumerable Somethings { get { return _somethings; } } public void AddSomething(Something thingToAdd) { /* logic */ _somethings.Add(thingToAdd); } } 我无法弄清楚如何为此配置映射。 我研究了使用配置类:EntityConfiguration。 但由于该属性受到保护,我无法弄清楚如何在其上设置配置。 有没有办法完成我在这里要做的事情?

在entity framework中排序列属性

我在我的应用程序中使用Entity Framework,因此我已将属性对象映射到数据库对象。 已使用Column属性定义属性对象。 现在,我想订购它们,但我找不到订单的Column Attribute中的属性。 我已经包含了System.ComponentModel.DataAnnotations,但仍然没有得到它 提前致谢