Tag: entity framework 4

EF代码首先给我错误当IDENTITY_INSERT设置为OFF时,无法在表'People'中为标识列插入显式值。

我尝试了entity framework4的Code First(EF CodeFirst 0.8),并遇到Person和Profile之间具有1 < – > 0..1关系的简单模型的问题。 以下是他们如何定义: public class Person { public int PersonId { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public DateTime? DOB { get; set; } public virtual Profile Profile { get; set; } } public class Profile { […]

entity framework初始化是慢的 – 我能做些什么来更快地引导它?

我的EF 4.3.1模型有200多个表格。 最初的启动是可怕的,几分钟。 一个DotTrace捕获的configuration文件意味着一些可怕的algorithm/可伸缩性select深深的框架,从数百万的调用方法,以及3600万IEnumerable.Contains()调用的certificate。 这是一个片段,这是由数据库上的第一个查询触发(未来的查询不这样做,并没有问题)。 我可以对我的模型做些什么来减轻这种痛苦? 我可以预先编译这个吗? 更好的是,英孚团队可以解决这些问题,还是可以开放框架? 或者至less修复Warapper的拼写? 🙂 编辑:一个具体的EF调用触发这基本上是var db = new MyDbContext(); db.Personnel.Where(a => a.Login == login).SingleOrDefault(); var db = new MyDbContext(); db.Personnel.Where(a => a.Login == login).SingleOrDefault(); 。 另外一个EF迁移种子()AddOrUpdate生成有效的相同的堆栈。 更完整的堆栈跟踪,这可能会提供更多的上下文,在这里: 富勒堆栈跟踪 编辑:一些相关的链接: MSDN: 性能考虑(entity framework) (感谢@AakashM) MSDN: EF电动工具 SO: 大量表格的entity framework4.1(715) 编辑2:现在,他们只是开源代码,看来,这一行: //Filter the 1:1 foreign key associations to the ones relating […]

如何在连接string中包含&符号?

我正在使用entity framework4为一个简单的应用程序,并希望将我的连接凭据烤到以下连接string: <connectionStrings> <add name="MyEntities" connectionString="metadata=res://*/MyDataModel.csdl|res://*/MyDataModel.ssdl|res://*/MyDataModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=localhost\DEV;Initial Catalog=MyDB;UserId=myUser;Password=jack&jill;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" /> </connectionStrings> 但是,密码(我无法更改)包含&符号。 ASP.NET引发: Configuration Error: An error occurred while parsing EntityName. Line XX, position YYY. Configuration Error: An error occurred while parsing EntityName. Line XX, position YYY. 如果我用&amp; ,我得到一个SqlException: Login failed for user 'myUser'. 通常这个技巧是有效的,但是我猜测有些东西是失败的,因为这在技术上是连接string中的连接string。 我应该在这里做什么? 我的大部分课程包括如下代码: using (var context = new MyEntities()) […]

用DbContext刷新实体实例

与EF4 CTP5 DbContext,这是什么等效 public void Refresh(Document instance) { _ctx.Refresh(RefreshMode.StoreWins, instance); } 我已经尝试过,但它不会做同样的事情,更新实例 public void Refresh(Document instance) { _ctx.ChangeTracker.DetectChanges(); } ?

Entity Framework / Linq to SQL:Skip&Take

只是好奇Skip&Take应该如何工作。 我得到了我希望在客户端看到的结果,但是当我连接AnjLab SQL事件探查器并查看正在执行的SQL时,它看起来好像正在查询并将整个行集返回给客户。 它真的返回所有的行,然后在客户端用LINQsorting和缩小的东西? 我试过用Entity Framework和Linq to SQL来做这件事。 两者似乎都有相同的行为。 不知道它有什么不同,但我在VWD 2010中使用C#。 任何见解? public IEnumerable<Store> ListStores(Func<Store, string> sort, bool desc, int page, int pageSize, out int totalRecords) { var context = new TectonicEntities(); totalRecords = context.Stores.Count(); int skipRows = (page – 1) * pageSize; if (desc) return context.Stores.OrderByDescending(sort).Skip(skipRows).Take(pageSize).ToList(); return context.Stores.OrderBy(sort).Skip(skipRows).Take(pageSize).ToList(); } 生成的SQL(注意:我不包括Count查询): SELECT [Extent1].[ID] AS [ID], […]

在EF4中为表列名称指定一个不同的名称

我正在使用CodeFirst的EF4 public class People : DbContext { public DbSet<Human> Humans { get; set; } public DbSet<Child> Children { get; set; } } 目前,EF在数据库中查找Human表。 我怎样才能指定它来寻找Humans呢?

首先使用Guid作为PK与EF4代码

我有这个class级和表格: public class Foo { public Guid Id {get;set;} public string Name {get;set;} } create table Foo ( id uniqueidentifier primary KEY DEFAULT (newsequentialid()), name nvarchar(255) ) 问题是,当我尝试保存新的foo第一个去与0000-000-00 … ID和第二也是,所以我得到约束exception 有谁知道一个修复?

EF ICollection Vs List Vs IEnumerable Vs IQueryable

所以,我的EF模型有关系,根据我在例子中看到的,这些关系应该用ICollection的虚拟属性来完成。 例: public class Task { public int Id { get; set; } public string Description { get; set; } public virtual ICollection<SubTask> { get; set; } } 我读的地方,我应该使用IEnumerable来防止延迟执行,是正确的? 这意味着如果我的DAL方法返回IEnumerable,仍然是IQueryable,那么SQL将在那个时候执行,而不是在我调用网页中的.TOList的那一刻。 那么,最佳做法是什么? 我应该返回什么? IEnumerable,List ?, IList,ICollection? 谢谢

内部.NET Framework数据提供程序错误1025

IQueryable<Organization> query = context.Organizations; Func<Reservation, bool> predicate = r => !r.IsDeleted; query.Select(o => new { Reservations = o.Reservations.Where(predicate) }).ToList(); 此查询会引发“内部.NET Framework数据提供程序错误1025”exception,但下面的查询不会。 query.Select(o => new { Reservations = o.Reservations.Where( r => !r.IsDeleted) }).ToList(); 我需要使用第一个,因为我需要检查一些if语句来构造正确的谓词。 我知道我不能在这种情况下使用if语句,这就是为什么我传递一个委托作为参数。 我怎样才能使第一个查询工作?

将EF 4 EDMX升级到EF 6

我的应用程序是在EF 4中使用数据库第一个EDMX。我想升级一切到EF 6.在获得与NuGet的EF 6之后,我不得不对我的EF模型,我的类进行了很多更改,因为名称空间然后我意识到,由我的EDMX生成的代码也使用错误的名称空间等等。到目前为止,我没有使用自定义的T4。 我如何将现有的EDMX升级到EF 6。 谢谢。