Tag: entity framework

SQL Server用于作品集列的内容(用于拥有Identity列)

我有一个表,它的主键是一个标识列,我用它作为我的“作品集”来显示它在报表上的价值。 如果insert语句失败,SQL Server的默认行为是自动增加我的标识列的种子,因此当用户有对开页1000的报告时,用户会感到困惑,下一个是对开页1004(因为可能有3个插入失败) )。 那么,创建作品集列并在Web应用程序中管理它的最佳方法是什么? 这是一个很好的做法,在进行保存之前,我会去我的桌子并获取我的folio column ,在服务器端自动递增,然后将其保存到db以获取新记录? 我担心并发性,因为如果在同一个第二个2个用户获得相同的作品集编号时会发生什么,问题是我将有2个具有相同编号的报告。 感谢任何建议。

EF启动速度极慢 – 15分钟

前段时间我创建了一个系统,用户可以使用自定义文件为某些对象定义类别。 然后,每个对象都具有基于其类别的FieldValue。 以下课程: public class DbCategory { public int Id { get; set; } [Required] public string Name { get; set; } [Required] public TextDbField MainField { get; set; } public List Fields { get; set; } } public class DbObject { public int Id { get; set; } public byte[] Bytes { get; set; […]

具有Entity Framework 6和PostgreSQL的Mono中不存在列Extent1.Id

我试图使用包Npsql和Npsql.EntityFramework映射到具有Entity Framework的PostgreSQL数据库。 我有一个包含下表的数据库: CREATE TABLE IF NOT EXISTS Crops ( Id INT PRIMARY KEY NOT NULL, Name TEXT NOT NULL, SowingMonths INT ); Crop模型如下所示: public class Crop { public int Id { get; set; } public string Name { get; set; } public Month SowingMonths { get; set;} //Month is an enum } 在数据库上下文中,我将模式映射到public,因为PostgreSQL中默认情况下所有表都在模式公共中。 protected […]

将派生类型映射到EF中的同一个表

以下简单的代码示例说明了相关场景。 我有一个Person实体,它简单地映射到DB中的Person表。 我正在使用默认的实体对象代码生成器。 public partial class Person { … } 我有一个派生自Person的PersonDetail类,它包含一些GUI所需的额外属性。 这些属性都不需要在DB中保留,因此我不想将此类映射到数据库。 public class PersonDetail : Person { public int TheGuiNeedsThisInformation { get; set; } } 然后我使用WCF将详细信息类的实例发送到GUI。 我的问题是,如果GUI修改PersonDetail实例的某些属性,并将其发送回服务器进行更新,我不能简单地将它附加到我的上下文,因为派生类没有映射到任何表(“映射和无法找到EntityType PersonDetail“)的元数据信息。 我试图将它映射到与Person类映射相同的表,但是EF会抛出一些关于映射的exception。 我设法通过创建PersonDetail实例的副本来解决此问题,方法是将其属性值复制到新的Person实例,然后将其保存到DB。 但是我想避免那些额外的工作。 我究竟做错了什么? 这不可能吗? 在Linq to SQL中,这就像一个魅力,基本上是开箱即用的。 如果这是不可能的,那么使用一些额外的信息来扩展我的实体类的建议方法是什么,这些信息不必持久化? (显而易见的方法是简单地向部分Person类添加额外的属性。但是,我不想这样做,因为GUI无法确定服务器上是否已经填充了额外的属性。) 更新:感谢您的建议,但我的主要问题仍然是开放的:是否有可能有一个基础和派生类(其中派生类没有任何必须保存到数据库的附加属性)映射到相同的table,以便我可以简单地将派生类型的实例附加到我的上下文并保存它,就好像它是基类型的实例一样? 我还不能这样做,我感到很惊讶,因为使用Linq to SQL它只是起作用。

.mdf文件上的entity framework

我正在做一些项目,我必须使用本地数据库。 所以,我创建了一个新的基于服务的数据库(没有表atm)。 然后我想添加entity framework支持。 因为我以前从未使用过Entity Framework,所以我指的是那个链接: http : //msdn.microsoft.com/en-us/data/jj200620.aspx 。 一切都很好,但这里变得复杂了。 我在其中创建了带有DbSet DataContext类。 但是,当我运行我的unit testing时,表是在Localdb上创建的(不在我的.mdf文件中)。 该怎么办? 我很确定,我确实选择了正确使用哪个数据库(实际上已经执行了3次),但仍然在LocalDb上创建了数据表。 我在这做错了什么? 我是初学者(仅使用教义ORM)。 否则我可以插入数据和所有,它只是在错误的数据库上。

将自定义代码添加到Entity Framework类

关于entity framework类的编程实践,我有一个问题。 当我创建.edmx文件时,它创建了类,但是当我更新这个文件时,我为这个类创建的所有方法都消失了。 我的问题是:我应该创建另一个包含所有方法的类吗? 在这种情况下,entity framework类只有属性?

在EntityFramework中使用SqlQuery来构成真正的IQueryable

有没有办法让SqlQuery或任何其他sql执行方法组成一个模型对象,并允许像Include这样的方法工作? 我这样做(其中view_products是一个SQL表函数): var p = context.SqlQuery(“select * from view_products(@param1)”, new SqlParameter(“param1”, “somevalue”)); 我想这样做: var list = p.Include(i => i.Inventories).ToList(); 这让我得到了一个DbRawSqlQuery。 这个我不能“包含”,因为你不能在DbRawSqlQuery上做到这一点。 所以,我最后添加一个AsQueryable,如: var p = context.SqlQuery(“select * from view_products(@param1)”, new SqlParameter(“param1”, “somevalue”)).AsQueryable(); 但是,我知道这真的给了我一个IEnumerable,所以.Include不会产生任何结果。 我正在寻找另一种方法的建议,我从SQL函数中获取我的产品,然后加载其相关的Inventory对象,以便我有一个对象图。 谢谢!

EF:在DbContext上禁用“AutoDetectChangesEnabled”和“ProxyCreationEnabled”时,从多对多关系创建/删除关系

知道Foo.Id和Bar.Id如何在不加载DB实体的情况下创建关系。 class Foo { public int Id { get; set; } public Lst Bars { get; set; } } class Bar { public int Id { get; set; } public Lst Foos { get; set; } } 此配置也在DbContext构造函数中禁用: Configuration.AutoDetectChangesEnabled = false; Configuration.ProxyCreationEnabled = false; Configuration.LazyLoadingEnabled = false; 以及如何删除这种关系? 例: using (var ctx = new DbCtx()) […]

使用一个上下文更新一个实体,并使用另一个上下文插入新实体?

问候和感谢阅读我的post..: 我正在更新使用中的条目(照片) using (context = new PhotoEntities()) { // … context.Entry(photo).State = EntityState.Modified; } 问题是当我使用保存此条目时 success = context.SaveChanges() > 0; if (success) { FeedServices.CreatePhotoFeed(photo); } 我仍然需要有上下文,因为我正在插入一个新的feed。 所以..我尝试使用不同的上下文,我遇到一个错误,说: An error occurred while updating the entries. See the inner exception for details.”, “ExceptionType”:”System.Data.Entity.Infrastructure.DbUpdateException”, “StackTrace”:” at System.Data.Entity.Internal.InternalContext.SaveChanges()\r\n at System.Data.Entity.Internal.LazyInternalContext.SaveChanges()\r\n at System.Data.Entity.DbContext.SaveChanges()\r\n at ServiceLibrary.Services.FeedServices.CreatePhotoFeed(Photo photo) in c:\\PhotoApp\\ServiceLibrary 这是失败的代码: public […]

无法确定关联的主要结束

首先使用EF5代码,我有两个类: [Table(“UserProfile”)] public class UserProfile { [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int UserId { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public DateTime DateOfBirth { get; set; } [ForeignKey(“AddressId”)] public virtual Address Address { get; set; } } [Table(“Address”)] public class Address : IEntity { [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] […]