草庐IT

framework-part

全部标签

c# - Entity Framework 4.1 和父/子关系的存储库模式

我对存储库模式仍然有些困惑。我想要使​​用此模式的主要原因是避免从域中调用EF4.1特定的数据访问操作。我宁愿从IRepository接口(interface)调用通用的CRUD操作。这将使测试更容易,如果我将来必须更改数据访问框架,我将能够这样做而无需重构大量代码。这是我的情况的一个例子:我在数据库中有3个表:Group、Person和GroupPersonMap。GroupPersonMap是一个链接表,仅由Group和Person主键组成。我使用VS2010设计器创建了3个表的EF模型。EF非常聪明,可以假定GroupPersonMap是一个链接表,因此它不会在设计器中显示。我想

c# - 从 Entity Framework 代理获取底层实体对象

我通过从DbEntityEntry.Entity获取实体来获得它。这将返回实体的EntityFramework代理。如何访问底层对象作为其原始类型而不是代理?或者,我需要动态尝试将代理强制转换为实体类型。这是一个开始。vartheEntityType=entityEntry.Entity;if(theEntityType.BaseType!=null&&entityType.Namespace=="System.Data.Entity.DynamicProxies")theEntityType=entityType.BaseType;//NowIneedtocasttothecorre

c# - Entity Framework 初始化很慢——我该怎么做才能更快地引导它?

我的EF4.3.1模型有200多个表。初始启动很糟糕,几分钟。DotTrace捕获的配置文件意味着框架深处有一些可怕的算法/可扩展性选择,对那里的许多方法的数百万次调用和3600万次IEnumerable.Contains()调用证明了这一点。这是一个片段,这都是由对数据库完成的第一个查询触发的(future的查询不会这样做并且很好)。我可以对我的模型做些什么来减轻这种痛苦?我能以某种方式预编译这个吗?更好的是,EF团队能否解决这些问题或开源框架以便我可以?或者至少修正Warapper的拼写?:)编辑:触发此事件的一个特定EF调用基本上是vardb=newMyDbContext();d

c# - Entity Framework (.NET 完整框架)订购包括

这个问题在这里已经有了答案:FilteringonIncludeinEFCore(10个答案)关闭去年。社区在10个月前审查了是否重新打开此问题,然后将其关闭:原始关闭原因未解决我正在尝试让类似下面的东西工作:_dbmsParentSections=FactoryTools.Factory.PdfSections.Include(x=>x.Children.OrderBy(y=>y.Order).ToList()).Include(x=>x.Hint).Include(x=>x.Fields).Where(x=>x.FormId==FormId&&x.Parent==null).Ord

c# - 更改跟踪在 Entity Framework 中的工作原理

给定以下代码,EF/DbContext如何知道对customer对象所做的更改:classProgram{staticvoidMain(){using(varshopContext=newShopContext()){varcustomer=shopContext.Customers.Find(7);customer.City="Marion";customer.State="Indiana";shopContext.SaveChanges();}}}publicclassShopContext:DbContext{publicDbSetCustomers{get;set;}}publ

c# - 使用Entity Framework 为什么要重新启动DbContext?

我不知道是否有更好的方法来使用DbContext,因为不建议在使用WCF时将其设置为静态。因此,我们每次要访问数据库时都会创建它。知道使用EntityFramework的所有优点,一些变得无用,因为我们每次都重新创建DbContext;由于要考虑创建大型实体模型的过程,因此更多可能会导致开销。你怎么看? 最佳答案 管理生命周期您是对的,DbContext的单个静态实例通常不推荐:ThemoreyouuseanObjectContext,generallythebiggeritgets.Thisisbecauseitholdsaref

c# - 在 C# (Framework 4.0) 中读取自定义配置文件

我正在Framework4.0下使用C#开发应用程序。在我的应用程序中,我想创建一个单独的配置文件,而不是app.config文件。配置文件包含我们为产品开发的自定义配置部分。我不想使用configSource从app.config引用这个文件。我想在运行时加载它并读取它的内容。我的意思的一个例子是log4net,它允许您在log4net.config文件中写入配置。任何人都可以在不编写模仿框架中现有代码的代码的情况下帮助如何做到这一点吗?更新:根据Kaido的回答,我编写了实用程序类来读取自定义配置文件,并能够在文件系统上的文件更改时刷新配置内容。在这个类中的用法如下:获取配置文件内

c# - 初始化 Entity Framework 上下文的最佳方法?

初始化EntityFramework上下文时。一种是类级别的初始化,比如publicclassEntityContactManagerRepository:ContactManager.Models.IContactManagerRepository{privateContactManagerDBEntities_entities=newContactManagerDBEntities();//ContactmethodspublicContactGetContact(intid){return(fromcin_entities.ContactSet.Include("Group")w

c# - String.Replace .NET Framework 的内存效率和性能

stringstr1="12345ABC...\\...ABC100000";//Hypotheticallyhugestringof100000+UnicodeCharsstr1=str1.Replace("1",string.Empty);str1=str1.Replace("22",string.Empty);str1=str1.Replace("656",string.Empty);str1=str1.Replace("77ABC",string.Empty);//...thisreplaceanti-patternmighthappenwithupto50consecutiv

c# - 阻止 Entity Framework 修改数据库

我开始使用EntityFramework的代码优先方法,主要是为了我可以用注释装饰我的属性以显示在我的View中(否则,现在我必须创建一个几乎是与EntityFramework为我生成的相同,所以我可以添加注释,然后将数据从一个对象复制到下一个对象)。现在看来,当我启动我的应用程序时,它正在尝试创建一个数据库。我不希望EntityFramework永远修改我的数据库。不,从来没有。甚至不要尝试。修改数据库真的不难;如果我自己这样做,我会感觉舒服得多。在设计数据库时,我不需要框架来牵手。我可以告诉框架停止尝试修改我的数据库吗?我现在非常犹豫是否使用代码优先,因为它试图修改我的数据库这一事