好吧,我有三层级的实体,具有以下层次:课程 – >模块 – >章节 这里是最初的EF LINQ声明: Course course = db.Courses .Include(i => i.Modules.Select(s => s.Chapters)) .Single(x => x.Id == id); 现在,我想包含另一个与课程相关的名为Lab的实体。 如何包含Lab实体? 我尝试了以下,但它没有工作: Course course = db.Courses .Include(i => i.Modules.Select(s => s.Chapters) && i.Lab) .Single(x => x.Id == id); 包括第二个实体的任何想法? 任何build议或信息将不胜感激。 谢谢!
我Entity Framework 5 code first使用Entity Framework 5 code first和ASP.NET MVC 3 。 我正在努力获取一个子对象的子对象来填充。 以下是我的课程.. 应用程序类; public class Application { // Partial list of properties public virtual ICollection<Child> Children { get; set; } } 儿童class: public class Child { // Partial list of properties public int ChildRelationshipTypeId { get; set; } public virtual ChildRelationshipType ChildRelationshipType { […]
我在我的网站中首先使用实体框架代码,我只是想知道是否有任何方法来debugging迁移代码。 你知道,像设置断点和这样的东西。 我使用软件包pipe理器控制台来使用update-database来更新数据库。 谢谢
不,第二个问题的答案不是冬天。 前言: 最近我对Entity Framework进行了大量的研究,并且一直困扰着我的是当查询没有被加热时的性能,所谓的冷查询。 我浏览了Entity Framework 5.0的性能考虑文章。 作者介绍了冷热查询的概念,以及它们如何不同,我也注意到自己不知道它们的存在。 这里值得一提的是我背后只有六个月的经验。 现在我知道我还可以研究哪些主题,如果我想更好地了解性能方面的框架。 不幸的是,互联网上的大部分信息都是过时的或主观性的膨胀,因此我无法find任何关于暖和 冷查询主题的附加信息。 基本上我到目前为止注意到的是,每当我必须重新编译或回收命中,我最初的查询变得非常缓慢。 如预期的那样,随后的数据读取是快速的( 主观的 )。 我们将迁移到Windows Server 2012,IIS8和SQL Server 2012,作为初级,我实际上赢得了自己的机会,在其他之前testing它们。 我很高兴他们介绍了一个预热模块,可以让我的应用程序为第一个请求做好准备。 但是,我不知道如何继续预热我的entity framework。 我已经知道的是值得的: build议提前生成我的意见。 最终将我的模型转换为单独的程序集。 我认为,按照常识走, 可能是错误的做法 : 在“应用程序启动”中执行虚拟数据读取,以便加热,生成和validation模型。 问题: 随时在我的entity framework上获得高可用性的最佳方法是什么? entity framework在什么情况下再次变得“冷”? (重新编译,回收,IIS重新启动等)
在我的服务层上,我在构造函数中注入了一个UnitOfWork和2个存储库。 工作单元和存储库有一个DbContext实例,我想在它们之间共享。 我怎样才能和Ninject做到这一点? 应考虑哪个范围? 我不在一个Web应用程序,所以我不能使用InRequestScope 。 我尝试做类似的事情……而我正在使用DI,但是,我需要我的UoW来Dispose d并创build它。 using (IUnitOfWork uow = new UnitOfWorkFactory.Create()) { _testARepository.Insert(a); _testBRepository.Insert(b); uow.SaveChanges(); } 编辑:我只是想确定我明白…后看看https://github.com/ninject/ninject.extensions.namedscope/wiki/InNamedScope我虽然关于我当前的控制台应用程序架构,实际上使用Ninject。 让我们说: A类是一个服务层类 B类是一个工作单元,它将一个接口(IContextFactory) C类是一个存储库,它将一个接口(IContextFactory) 这里的想法是能够在2个或更多的资源库上进行上下文操作,并使用工作单元来应用这些变化。 D类是一个上下文工厂(Entity Framework),它提供了一个在B类和C类之间共享的上下文的实例(保存在容器中),也可以用于其他的存储库。 上下文工厂保存在他的容器中的实例,所以我不想重复使用这个实例所有的名字,因为上下文需要被放置在服务operaiton的末尾..这实际上是InNamedScope的主要目的? 解决的办法是,但我不确定我是否做得对,服务实例会变成这样,这意味着他们实际上从来没有处置? : Bind<IScsContextFactory>() .To<ScsContextFactory>() .InNamedScope("ServiceScope") .WithConstructorArgument( "connectionString", ConfigurationUtility.GetConnectionString()); Bind<IUnitOfWork>().To<ScsUnitOfWork>(); Bind<IAccountRepository>().To<AccountRepository>(); Bind<IBlockedIpRepository>().To<BlockedIpRepository>(); Bind<IAccountService>().To<AccountService>().DefinesNamedScope("ServiceScope"); Bind<IBlockedIpService>().To<BlockedIpService>().DefinesNamedScope("ServiceScope");
我试图在EF 5.0 Code First w / Migrations中将SQL视图映射到实体上,以便在页面上显示一些基本信息,而无需查询多个表中的信息(加载时间大约需要20秒,而不是很好。 )。 我听说有可能这样做,但我一直无法find或find一种正确的方式。 编辑:为了更深入的看看我对这个问题的解决scheme,请阅读这个主题的博客文章 。 这是我的观点: CREATE VIEW [dbo].[ClientStatistics] AS SELECT ROW_NUMBER() OVER (Order By c.ID) as Row, c.LegacyID, c.ID, c.ClientName, slc.AccountManager, slc.Network, (SELECT MAX(CreatedDate) AS Expr1 FROM dbo.DataPeriods WHERE (ClientID = c.ID)) AS LastDataReceived, (SELECT MAX(ApprovedDate) AS Expr1 FROM dbo.DataPeriods AS DataPeriods_2 WHERE (ClientID = c.ID)) AS LastApproved, […]
我想定义一个枚举EF5使用,以及相应的查找表。 我知道EF5现在支持枚举,但是现成的,它似乎只支持在对象级别,并且不会默认为这些查找值添加一个表。 例如,我有一个用户实体: public class User { int Id { get; set; } string Name { get; set; } UserType UserType { get; set; } } 和一个UserType枚举: public enum UserType { Member = 1, Moderator = 2, Administrator = 3 } 我想为数据库生成创build一个表,如下所示: create table UserType ( Id int, Name nvarchar(max) ) 这可能吗?
我需要在我的数据库中有一列由数据库计算(行的总和) – (行的总和)。 我使用代码优先模型来创build我的数据库。 这是我的意思: public class Income { [Key] public int UserID { get; set; } public double inSum { get; set; } } public class Outcome { [Key] public int UserID { get; set; } public double outSum { get; set; } } public class FirstTable { [Key] public int UserID { get; […]
我有使用EF-CodeFirst 5(dll版本4.4.0.0,在.net 4.0)的应用程序。 我需要能够读取实体元数据,以便我可以针对给定的条目types获取以下信息: 哪些属性是一对多关系(被引用的实体) 哪些属性是多对一的关系(引用当前实体的实体的集合) 也很好,但不是绝对必要:哪些属性是多 – 很多关系(关系集合) 我可以通过在属性列表中编写foreach循环来获得这些信息,然后依靠所有的引用是虚拟的来“识别”它们,但我觉得这不是“正确”的方式。 我知道EdmxWriter可以以xml格式提供这些信息,但是通过访问不能公开访问的InternalContext,我想直接获取强types的列表/数组,而不使用该xml。 我应该使用哪个API(如果有这个API,看起来我找不到)?
我有一个控制器的行动,在Firefox本地和生产,并在IE本地,但IE浏览器在生产工作正常。 这是我的控制器操作: public ActionResult MNPurchase() { CalculationViewModel calculationViewModel = (CalculationViewModel)TempData["calculationViewModel"]; decimal OP = landTitleUnitOfWork.Sales.Find() .Where(x => x.Min >= calculationViewModel.SalesPrice) .FirstOrDefault() .OP; decimal MP = landTitleUnitOfWork.Sales.Find() .Where(x => x.Min >= calculationViewModel.MortgageAmount) .FirstOrDefault() .MP; calculationViewModel.LoanAmount = (OP + 100) – MP; calculationViewModel.LendersTitleInsurance = (calculationViewModel.LoanAmount + 850); return View(calculationViewModel); } 这里是我在IE中获得的堆栈跟踪: 错误。 处理您的请求时发生错误。 System.Reflection.TargetException:非静态方法需要一个目标。 System.Reflection.RuntimeMethodInfo.Invoke(Object obj,BindingFlags invokeAttr,Binder binder,Object […]