草庐IT

CAP_FIRST

全部标签

c# - 如何对 Entity Framework Code First 映射进行单元测试?

我正在使用CodeFirst将类映射到现有数据库。我需要一种方法来对这些映射进行单元测试,它们混合了基于约定、基于属性和流畅的API。为了进行单元测试,我需要确认类的属性映射到数据库中正确的表名和列名。此测试需要针对上下文执行,并且应首先涵盖代码的所有配置选项。在非常高的层次上,我希望断言类似(伪代码)的东西:Assert.IsTrue(context.TableFor().IsNamed("tbl_Widget"));Assert.IsTrue(context.ColumnFor(w=>w.Property).IsNamed("WidgetProperty"));

c# - 为什么 EF4 Code First 在存储对象时这么慢?

我目前正在研究db4o存储在我的Web应用程序中的使用情况。我很高兴db4o工作起来如此简单。因此,当我读到CodeFirst方法时,我有点喜欢它,因为使用EF4CodeFirst的方式与使用db4o非常相似:创建您的域对象(POCO),将它们扔到db4o中,然后永不回头。但是当我进行性能比较时,EF4慢得可怕。我不知道为什么。我使用以下实体:publicclassRecipe{privateList_RecipePreparations;publicintID{get;set;}publicStringName{get;set;}publicStringDescription{get

c# - 如何更改 EF Code First 中主键的名称?

我有一个场景,我想更改实体中的主键名称并能够运行update-database-force。请参阅下面的代码和尝试时出现的错误。实体是:publicclassTeam{[Key][HiddenInput(DisplayValue=false)]publicvirtualintId{get;set;}[Display(Name="FullName:")]publicvirtualstringName{get;set;}}实体更改为:publicclassTeam{[Key][HiddenInput(DisplayValue=false)]publicvirtualintTeamId{ge

c# - FirstOrDefault/First 和 OrderByDescending 是否比 LastOrDefault/Last 和 OrderBy 更快?

这个问题在这里已经有了答案:OrderBy().Last()orOrderByDescending().First()performance(6个答案)关闭9年前。我有一个LINQ问题,想知道是否有人知道答案。通常,如果我想查找按特定字段排序的记录,例如“最新添加的人”,我会这样写:MyCollection.OrderByDescending(x=>x.AddedDate).FirstOrDefault();最近我从团队中另一个喜欢写的开发人员那里接了一些工作:MyCollection.OrderBy(x=>x.AddedDate).LastOrDefault();所以我的问题是,按降

c# - Entity Framework 5 Code First 自引用关系

如何在EntityFramework5中映射以下关系?publicclassItem{publicintId{get;set;}publicint?ParentItemId{get;set;}publicstringValue{get;set;}publicItemParentItem{get;set;}publicListChildItems{get;set;}}我已经试过了:protectedoverridevoidOnModelCreating(DbModelBuildermodelBuilder){base.OnModelCreating(modelBuilder);model

c# - Entity Framework 6 code first - 通过注解实现多对多的一种方式

是否可以在EntityFramework6中使用代码优先和注释创建单向多对多关联?示例:classCurrency{publicintid{get;set;}}classCountry{publicintid{get;set;}//HowicanannotatethispropertytosayEFthatitismany-to-many//anditshouldcreatemappingtable?//Idon'tneednavigationpropertytoCountryinCurrencyclass!publicvirtualIListcurrencies{get;set;}}

c# - 如何使用 Entity Framework 4 Code First (POCO) 声明一对一关系

如何使用EntityFramework4CodeFirst(POCO)声明一对一关系?我找到了thisquestion(one-to-onerelationshipsinEntityFramework4),但是答案引用的那篇文章没有用(有一行代码是一对一的关系,但是没有提到如何定义)。 最佳答案 三种方法:A)声明两个具有导航属性的类。用ForeignKey属性标记其中一个表(从属表)的主键。EF从中推断出1对1:publicclassAppUser{publicintId{get;set;}publicstringUsername

c# - 在 Entity Framework 4.1 版本中使用 Code-First 时性能极慢

我们公司正在开发一个新的应用程序,它的核心是一个比较大的业务数据对象。我们决定先用代码尝试EntityFramework,以从应用程序中抽象出数据库,但事情出了差错。业务对象由大约60个类组成,总共大约600个属性;然而,它是一个树结构,不存在交叉/回溯指针。我们的测试是向数据库添加一个未初始化的类实例。在我们的数据结构上使用DbContext.Add在我的开发机器上花费了8分钟。这是这种大小的物体的预期性能吗?是否有导致EntityFramework性能不佳的常见问题列表?我觉得我需要一些帮助。一些更多的数据点:业务对象根下的第一层有27个元素。存在3个元素(其余元素已注释掉),添加

c# - 在 Code First 的情况下使用 MetadataType 强制执行验证是否有意义?

我似乎理解了将MetadataTypeAttribute帮助到AddValidationtotheModel背后的原因如果是DatabaseFirst因为我们希望避免下次从数据库生成模型时覆盖更改。我注意到很少有人使用MetadataType定义验证,即使他们使用CodeFirst也是如此。方法,并且它们的实体类不可能被某种自动生成的代码覆盖。不直接将这些DataAnnotations应用于实际的实体类,而是将它们分成部分类定义,然后使用MetadataType进行链接是否有意义,即使在使用CodeFirst时也是如此定义实体模型的方法?publicclassMyEntity{[Req

c# - FK到同表Code First Entity Framework

我是EntityFramework中代码优先方法的新手。我对如何做到这一点感到有点困惑:我需要与同一个表的FK关系,这样我就可以在元素之间建立父-->子关系。这是表格的模型:publicclassBucketGroup{publicintId{get;set;}//ThisisthePKintheTablepublicstringName{get;set;}//NowthistheFK,tothisSameTable:publicint?BucketGroupId{get;set;}}所以我将这个项目设置为Nullable,如果BucketGroupId为NULL,那么我知道它是一个父