我试图使用1 Store过程执行填充域模型和子实体。也许这就是的答案。我很确定这是不可能的,但我想我会抛出这个问题,以找到可能的工作。
我有相当复杂的领域模型和im寻找一种更有效的方式加载我的数据,而不是查询一个客户,然后懒得加载它的孩子。我给出了一个简单的例子,说明我试图在下面取得的成就;
public class Customer{
public int Id { get; set; }
public virtual Address Address { get; set; }
}
public class Address{
public int Id { get; se
我使用的是.NET Core 1.1.0,EF Core 1.1.0,VS 2015。
我正在为posts/comments编写一个系统,我需要一个函数来加载一个注释及其所有子级及其相关属性。下面是我的类的简化版本:
public class Comment
{
public long Id { get; set; }
public string Content { get; set; }
public User User { get; set; }
public ICollection<Comment> Replies { get; set;
首先,我在EF Code中有两个模型:
public class Book
{
public int Id { get; set; }
public virtual IEnumerable<Page> Pages { get; set; }
}
public class Page
{
public int Id { get; set; }
public int BookId { get; set; }
public Book Book { get; set; }
}
从DB加载Book模型时,Pages属性为Null。但是当替换IEnumerable => ICo
我有以下课程:
public class Vehicle{
public Engine TurboV6 { get; set; }
public class Engine{
public Cylinder Core { get; set; }
public class Cylinder{
public double? Capacity { get; set; }
我在OnModelCreating方法中配置了如下所拥有的实体:
modelBuilder.Entity<Vehicle>()
.OwnsOne(
我首先使用EF数据库,因为我喜欢在中设计我的数据库,坦率地说,让Visual直接从数据库创建所有实体非常容易,而无需执行任何代码。
然而,我在SQL上注意到,每当我在结果集合上调用ToList()时,EF都在急切地加载对象的所有相关实体。
假设我有这样一个实体:
public class SomeEntity
{
public string Name { get; set; }
public IEnumerable<SomeOtherEntity> ListOfOtherEntites { get; set; }
}
然后,我可以进行查询,获取以下实体的列表:
public
默认情况下,导航属性始终为null ef core (v3.1.0)
但是,当我使用早期加载加载导航属性时,它可以正常工作。
var companies = context.Companies.Include(e=>e.Employees); // this works
var e1 = companies.First().Employees;
var companies = context.Companies; // this does n't work
var e1 = comp
当我在浏览器中使用URL获取数据时,我可以看到相关数据,例如:
在我的例子中,列出了DinnerId =1的5个RSVP,但是当我使用来自不同项目的OData时,我只能检索晚餐,调试应用程序显示RSVP= 0,而它应该是5。
我通过向我的项目添加一个服务引用来使用服务,并通过一个非常简单的LINQ查询返回数据:
public ActionResult Index()
{
var result = (from d in db.Dinners
select d);
return
我有一个问题,我想许多专业的开发人员都会遇到这个问题。我的工作场所采用了实体框架。我们用它,也爱它。然而,我们似乎遇到了一个非常令人沮丧的限制。
让我们假设您有这样的对象链
-> B -> C -> D
我们是专业人员,所以这些对象有大量的数据,并且在它们各自的数据库表中有很多数据。似乎EF很难加载任何过去的对象B。它生成的SQL查询效率很低,不太好。这个电话就像是
context.objects.include("bObjectName.cObjectName.dObjectName").FirstOrDefault(x => x.PK == some
不喜欢在启用延迟加载的虚拟外键导航属性上使用自定义集访问器。它在启动/配置期间抛出运行时异常。不过,每次设置这些属性之一时,我都想运行一些自定义代码。我有没有办法不对我大吼大叫就能做到这一点?代码示例/说明如下:
public class CoilUnit
{
[Key]
public Guid Id { get; set; }
[ForeignKey("project")]
public virtual CoilProject Project { get; set; }
}
public class CoilProject
{
[Ke
我正在使用MVC.NET网络应用程序接口,EF和DB优先,我已经在我的上下文中关闭了延迟加载。EF返回的数据太多了,即使关闭了LazyLoading。
例如,我的用户只有一个角色。当我查询用户和包含角色时,Role.Users属性会自动填充数据,因为用户已经加载到上下文中。
为什么我不能让EF给我我想要的?还是我错过了什么重要的东西?
public partial class User
{
public int UserID { get; set; }
public string Title { get; set; }
public string Email { get
自从EF 4.1上线以来,我就一直在使用EF CodeFirst,那是一年多以前的事了,现在我觉得很适合使用它。我习惯于定制实体验证器,重写.SaveChanges()来修改它的一些行为,以及一些重要的概念,比如映射到非表db对象。但是EF的这一部分对我来说仍然是多云的:context.Configuration.LazyLoadingEnabled = false;。
我了解基本情况,一旦调用linq查询,它们就会被抛到数据库中,如果我没有显式地指定它( yadda yadda yadda ),依赖集合就不会被加载。我想了解的是:
在什么情况下我应该禁用延迟加载?为什么?
禁用它的实