Questions tagged «entity-framework-4.1»

此标记用于ADO.NET实体框架4.1,它是EF的首个发行版,与.NET框架分开提供。它基于.NET 4.0中包含的核心实体框架,并于2011年3月向公众发布。

2
我应该如何在MVC3中使用代码优先实体框架(4.1)声明外键关系?
我一直在寻找有关如何使用代码优先EF 4.1声明外键关系和其他约束的资源,但运气不佳。基本上,我正在代码中构建数据模型,并使用MVC3查询该模型。一切都可以通过MVC来完成,这很棒(对Microsoft很赞!),但是现在我希望它不起作用,因为我需要数据模型约束。 例如,我有一个Order对象,该对象具有大量作为外部对象(表)的属性。现在,我可以毫无问题地创建订单,但是不能添加外键或外部对象。MVC3设置没有问题。 我意识到我可以在保存之前将自己添加到控制器类中,但是如果未满足约束关系,我希望对DbContext.SaveChanges()的调用失败。 新的消息 因此,特别是,当我尝试在不指定客户对象的情况下尝试保存Order对象时,我希望发生异常。如果我只是按照大多数Code First EF文档中的说明组成对象,这似乎就不是行为。 最新代码: public class Order { public int Id { get; set; } [ForeignKey( "Parent" )] public Patient Patient { get; set; } [ForeignKey("CertificationPeriod")] public CertificationPeriod CertificationPeriod { get; set; } [ForeignKey("Agency")] public Agency Agency { get; set; } [ForeignKey("Diagnosis")] public Diagnosis PrimaryDiagnosis …


4
与ObjectContext相比,为什么在EF 4.1中插入实体这么慢?
基本上,我在一个事务中插入35000个对象: using(var uow = new MyContext()){ for(int i = 1; i < 35000; i++) { var o = new MyObject()...; uow.MySet.Add(o); } uow.SaveChanges(); } 这需要永远!如果我使用基础ObjectContext(通过使用IObjectAdapter),它仍然很慢,但大约需要20秒。似乎DbSet<>正在执行一些线性搜索,这需要花费大量时间... 还有其他人看到这个问题吗?

2
EF代码优先:如何获取随机行
如何建立查询以检索随机行? 如果我要用SQL编写它,那么我将对newid()进行排序,并从顶部砍掉n行。无论如何要先在EF代码中执行此操作? 我尝试创建使用newid()的查询并使用DbSet.SqlQuery()执行它。虽然有效,但并不是最干净的解决方案。 另外,尝试检索所有行并按新的GUID对它们进行排序。尽管行数很小,但是它仍然不是一个好的解决方案。 有任何想法吗?

4
实体框架-有没有自动方法而无需Include()来自动加载子实体的方法吗?
有没有办法装饰您的POCO类以自动渴望加载子实体,而不必Include()每次加载它们时都使用它们? 假设我有一辆有轮,门,引擎,保险杠,窗户,排气等复杂类型属性的类车。在我的应用中,我需要从DbContext的20个不同的地方加载汽车,并进行不同的查询,等等。不需要指定每次要加载汽车时都包含所有属性。 我想说 List<Car> cars = db.Car .Where(x => c.Make == "Ford").ToList(); //NOT .Include(x => x.Wheels).Include(x => x.Doors).Include(x => x.Engine).Include(x => x.Bumper).Include(x => x.Windows) foreach(Car car in cars) { //I don't want a null reference here. String myString = car.**Bumper**.Title; } 我可以以某种方式装饰我的POCO类或在我的POCO类中OnModelCreating()设置还是在EF中设置一个配置,以告诉它在加载汽车时仅加载汽车的所有零件?我希望能做到这一点,所以我的理解是将导航属性设置为虚拟。我知道NHibernate支持类似的功能。 只是想知道我是否缺少什么。提前致谢! 干杯, 内森 我喜欢下面的解决方案,但想知道是否可以将对扩展方法的调用嵌套。例如,假设我在Engine上遇到类似的情况,其中有很多我不想包含在所有地方的零件。我可以做这样的事情吗?(我还没有找到一种可行的方法)。这样,如果以后发现Engine需要FuelInjectors,则可以仅将其添加到BuildEngine中,而不必也将其添加到BuildCar中。另外,如果可以嵌套调用,如何嵌套对集合的调用?是否想从BuildCar()中为每个车轮调用BuildWheel()? public static IQueryable<Car> BuildCar(this …


5
是否应该使用实体框架4.1和MVC3启用或禁用动态代理?
有人可以提供一些建议或指出一些博客/文章来帮助做出这一决定吗?代理对我来说似乎很陌生,我不愿意使用它们。我喜欢通过在模型中使用虚拟属性来控制延迟加载的功能,但这几乎是我可以看到的所有好处。我的应用程序是一个简单的MVC Web应用程序,当实体经历更改状态时,我不需要为上下文绑定任何挂钩。 无论如何,这是我目前优缺点非常有限的清单,请让我知道我是否在这方面不满意。 优点 在“保存”或“更新”上,我可以无缝地应用“更改” 延迟加载配置非常容易。 缺点 对于我的实体,以前从未使用过代理,这是一种方法上的变化,对我自己和团队成员而言似乎不舒服。 难以调试。 如果我要序列化/反序列化,则需要额外的代码 在“保存”或“更新”上,代理必须与从上下文中检索到的对象相同。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.