Tag: entity framework

entity framework和SQL Server视图

由于几个我没有自由讨论的理由,我们正在定义一个对我们的Sql Server 2005数据库的看法,如下所示: CREATE VIEW [dbo].[MeterProvingStatisticsPoint] AS SELECT CAST(0 AS BIGINT) AS 'RowNumber', CAST(0 AS BIGINT) AS 'ProverTicketId', CAST(0 AS INT) AS 'ReportNumber', GETDATE() AS 'CompletedDateTime', CAST(1.1 AS float) AS 'MeterFactor', CAST(1.1 AS float) AS 'Density', CAST(1.1 AS float) AS 'FlowRate', CAST(1.1 AS float) AS 'Average', CAST(1.1 AS float) AS 'StandardDeviation', CAST(1.1 AS float) AS […]

ASP.NET MVC中每个请求一个DbContext(没有IOC容器)

道歉,如果这已经被回答,但如何保证一个entity frameworkDbContext每个请求,如果你不使用国际奥委会容器? (到目前为止,我所遇到的答案涉及国际奥委会容器解决scheme。) 看起来像大多数解决scheme挂钩到HttpContext.Current.Items字典,但如何保证在请求完成时处理DbContext? (或者是用EF DbContext来处理不是绝对必要的?) 编辑 我目前在我的控制器实例化和处置我的DbContext,但我也有我的DbContext在ActionFilters和我的MembershipProvider(我刚刚注意到,也是一对夫妇validation器)的几个单独的实例化。 所以,我认为集中实例化和存储我的DbContext以减less开销可能是一个好主意。

自我跟踪实体的目的是什么?

我一直在阅读.net中的自我跟踪实体,以及它们是如何从* .edmx文件生成的。 我正在努力理解的东西是什么生成这些实体给你的基本EF实体? 此外,有些人提到了自我跟踪实体和Silverlight,但是为什么要使用这些而不是RIA服务生成的客户端或共享类? 自我跟踪实体的目标是什么?为什么要使用它们?

entity framework(EF)代码第一级联删除的一对零或一的关系

继Julie Lerman的Pluralsight“Entity Framework 5入门”课程的“代码优先build模”部分之后,我创build了两个具有一对一或一对一关系的POCO类:一个父代(User)和一个可选孩子(UserDetail)。 用户和UserDetail数据模型图(点击查看)。 请注意,图中的UserId属性是UserDetail的主键和外键 。 相关代码: public class User { //… [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int UserId { get; set; } /* Has a 1:0..1 relationship with UserDetail */ public virtual UserDetail UserDetail { get; set; } //… } public class UserDetail { //… /* Has a 0..1:1 relationship with User */ public virtual […]

我如何使用entity framework自动过滤软删除的实体?

我首先使用实体​​框架代码。 我重写DbContext SaveChanges以允许我执行“软删除”: if (item.State == EntityState.Deleted && typeof(ISoftDelete).IsAssignableFrom(type)) { item.State = EntityState.Modified; item.Entity.GetType().GetMethod("Delete") .Invoke(item.Entity, null); continue; } 这很好,所以对象知道如何标记自己是一个软删除(在这种情况下,它只是将IsDeleted设置为true )。 我的问题是我怎么能这样做,当我检索对象忽略IsDeleted任何? 所以,如果我说_db.Users.FirstOrDefault(UserId == id)如果该用户有IsDeleted == true它将忽略它。 本质上我想过滤? 注意:我不想只把&& IsDeleted == true这就是为什么我用接口标记类,所以删除知道如何“只是工作”,我想以某种方式修改检索知道如何“只是工作“也基于那个接口存在。

entity framework中的SqlException – 不允许新的事务,因为会话中还有其他线程正在运行

我目前得到这个错误: System.Data.SqlClient.SqlException:不允许新的事务,因为会话中还有其他线程正在运行。 运行这个代码时: public class ProductManager : IProductManager { #region Declare Models private RivWorks.Model.Negotiation.RIV_Entities _dbRiv = RivWorks.Model.Stores.RivEntities(AppSettings.RivWorkEntities_connString); private RivWorks.Model.NegotiationAutos.RivFeedsEntities _dbFeed = RivWorks.Model.Stores.FeedEntities(AppSettings.FeedAutosEntities_connString); #endregion public IProduct GetProductById(Guid productId) { // Do a quick sync of the feeds… SyncFeeds(); … // get a product… … return product; } private void SyncFeeds() { bool found = false; string […]

使用Entity Framework手动input密钥

我试图首先使用实体​​框架代码为一个简单的数据库项目,我遇到了一个问题,我根本无法弄清楚。 我发现EF设置我的表的ID自动增加1,完全忽略我手动input该字段的值。 经过一番search,我的理解是禁用这种行为的正确方法是: modelBuilder.Entity<Event>().Property(e => e.EventID).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None); 但是现在我只是得到这个错误,我不知道为什么: 未处理的exception:System.Data.Entity.Infrastructure.DbUpdateException:更新条目时发生错误。 详情请参阅内部例外。 — System.Data.UpdateException:更新条目时发生错误。 详情请参阅内部例外。 —> System.Data.SqlClient.SqlException:当IDENTITY_INSERT设置为OFF时,无法在表“事件”中为标识列插入显式值。 如果有帮助的话,这里是POCO课程: public class Event { [Key, Required] public int EventID { get; set; } public string EventType { get; set; } //TODO: Event Type Table later on public DateTime StartDate { get; set; } public DateTime EndDate { get; set; } […]

entity framework.Remove()与.DeleteObject()

您可以使用以下两种方法使用EF从数据库中删除项目。 EntityCollection.Remove方法 ObjectContext.DeleteObject方法 第一个是EntityCollection ,第二个是ObjectContext 。 什么时候应该使用? 一个人比另一个人更喜欢吗? Remove()返回一个bool , DeleteObject()返回void 。

.ToList(),.AsEnumerable(),AsQueryable()之间有什么区别?

我知道一些LINQ to Entities和LINQ to Objects的区别,第一个实现了IQueryable ,第二个实现了IEnumerable ,我的问题范围在EF 5之内。 我的问题是这三种方法的技术差异是什么? 我看到,在许多情况下,所有这些工作。 我也看到使用它们的组合.ToList().AsQueryable() 。 这些方法究竟意味着什么? 是否有任何性能问题或会导致相互使用的问题? 为什么会使用.ToList().AsQueryable()而不是.AsQueryable() ?

重置entity framework迁移

我已经把我的迁移IgnoreChanges了,我在初始迁移时使用了IgnoreChanges ,但是现在我想删除所有的迁移,并开始使用所有逻辑进行初始迁移。 当我删除文件夹中的迁移,并尝试和Add-Migration它不会生成一个完整的文件(这是空的 – 因为我没有做任何改变,因为我上次,但现在删除,迁移)。 有没有Disable-Migrations命令,所以我可以重新运行Enable-Migrations ?