草庐IT

c# - 如何首先使用 EF 代码在 .SaveChanges() 期间记录所有实体更改?

我正在使用EF代码优先。我正在为我的所有存储库使用一个基础存储库,并使用一个注入(inject)存储库的IUnitofWork:publicinterfaceIUnitOfWork:IDisposable{IDbSetSet()whereTEntity:class;intSaveChanges();}publicclassBaseRepositorywhereT:class{protectedreadonlyDbContext_dbContext;protectedreadonlyIDbSet_dbSet;publicBaseRepository(IUnitOfWorkuow){_db

c# - "using"语句的EF( Entity Framework )用法

我有一个关于MVC的项目。我们为我们的数据库事务选择了EF。我们为BLL层创建了一些管理器。我发现了很多示例,其中使用了“using”语句,即publicItemGetItem(longitemId){using(vardb=newMyEntities()){returndb.Items.Where(it=>it.ItemId==itemId&&!it.IsDeleted).FirstOrDefault();}}这里我们创建了一个新的DBcontextMyEntities()实例。我们使用“using”来"ensurethecorrectuseofIDisposableobjects.

c# - 枚举 EF 5.0 - 数据库优先

如果我使用数据库优先,我如何才能让我的上下文对象使用EntityFramework5.0中的枚举功能。 最佳答案 转到模型浏览器并创建一个新的枚举类型,然后转到您希望使用它的任何列并将其类型更改为您刚刚创建的枚举。 关于c#-枚举EF5.0-数据库优先,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/11595008/

c# - 如何在 EF-Code-First 中指定主键名称

我正在使用EntityFrameworkCodefirst创建我的数据库。当我通过ODBC连接到它时,具有模式名称dbo.pk_Jobs的默认主键似乎会扰乱访问2007。如果我手动编辑名称并删除架构名称并将此主键重命名为pk_jobs,Access现在可以读取该表。我可以使用FluentApi、数据属性或任何其他方法指定主键名称以不包括架构名称吗?publicclassReportsContext:DbContext{publicDbSetJobs{get;set;}protectedoverridevoidOnModelCreating(DbModelBuildermodelBuil

c# - EF 6 与 EF 5 部署到 IIS8 时的相对性能问题

我有一个带有EF6的MVC4应用程序。从EF5升级到EF6后,我注意到我的一个linq-entities查询存在性能问题。起初我很兴奋,因为在我的开发箱上我注意到从EF5到EF6有50%的改进。这个查询返回大约73,000条记录。在生产服务器上运行的SQL被ActivityMonitor、RecentExpensiveQueries截获,此时间也包含在下表中。以下数字是数据库预热后的数字:开发:64位操作系统、SS2012、2核、6GBRAM、IISExpress。EF5~30secEF6~15secSQL~26sec生产:64位操作系统、SS2012、32核、32GBRAM、IIS8

c# - EF 6.X 中的 Entity Framework Code First Fluent API 默认值

如何使用EntityFrameworkCodeFirstFluentAPI为bool属性设置默认值?类似于:Property(l=>l.PropertyFlag).HasColumnType("bit").DefaultValue(1); 最佳答案 好消息,codefirst现在支持这个。在生成的迁移的“Up()”方法中,使用以下语法指定默认值:AddColumn("[tablename]","[columnname]",c=>c.Boolean(nullable:false,defaultValue:false));MSDNfor

c# - EF Code First 阻止使用 Fluent API 进行属性映射

我有一个类Product和一个复杂类型AddressDetailspublicclassProduct{publicGuidId{get;set;}publicAddressDetailsAddressDetails{get;set;}}publicclassAddressDetails{publicstringCity{get;set;}publicstringCountry{get;set;}//otherproperties}是否可以防止从Product类中的AddressDetails映射“Country”属性?(因为我永远不需要它用于Product类)像这样Property(

c# - EF 5 迁移无法连接到我们的数据库,即使它在运行时运行良好

我们有三个项目。Company.Domain(类库)Company.PublicWebsite(MVC3Web应用程序)Company.InternalWebsite(MVC3Web应用程序)这两个网站项目都引用了Company.Domain。我们的EF5DbContext位于Company.Domain.Data.EntityFramework中,它看起来像这样:usingSystem.Data.Entity;usingCompany.Domain.Data.EntityFramework.Entities;namespaceCompany.Domain.Data.EntityFra

c# - 如何防止 EF "The context cannot be used while the model is being created"错误?

查看我的Elmah错误日志,我看到一些来自EntityFramework的InvalidOperationException处理:Thecontextcannotbeusedwhilethemodelisbeingcreated.这是来自Nuget的最新EFCodeFirst库。我能够在网上找到的唯一信息是它是由将数据上下文作为单例引起的,这肯定不是我的情况。在我的Windsor安装程序中,我的EF工作单元结构正在注册:container.Register(Component.For().ImplementedBy().LifeStyle.PerWebRequest);我能够通过在VS

c# - EF Code First - 如何设置身份种子?

我有一个实体类publicclassEmployee{publiclongId{get;set;}publicstringName{get;set;}}我已将Id字段设置为主键并自动生成编号modelBuilder.Entity().HasKey(e=>e.Id);modelBuilder.Entity().Property(e=>e.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);但我希望身份从10000开始播种,而不是从默认的1开始。我如何在EF中指定它? 最佳答案