Tag: navigation properties

entity framework核心:私有或受保护的导航属性

是否有可能在EFCore中定义具有私有或受保护访问级别的导航属性,以使这种代码工作: class Model { public int Id { get; set; } virtual protected ICollection childs { get; set; } }

entity framework(Database-First)与同一个表命名约定控件的多个关系

我们假设我们遇到这种情况: 数据库中的表: Country (id, country_name), Person (id, login), CountryManager (id_country, id_person), CountryStakeholder (id_country, id_person) 如果我们必须使用Entity Framework Database-First从数据库创建模型,在VS中我们有一个这样的类: class Country { int id; string country_name; virtual ICollection Person1; // Navigation Properties virtual ICollection Person2; // ———||———- } 我已经简化了很多代码,但希望你明白了。 似乎当Entity Framework处理外键时,它会创建通用导航属性。 是否有可能控制按名称创建导航属性的方式? 不幸的是,Person1,Person2并不是非常具有解释性。

.Skip()。entity framework上的Take()导航属性正在我的SQL Server上执行SELECT *

我在生成的部分类上有一个方法,如下所示: var pChildren = this.Children .Skip(skipRelated) .Take(takeRelated) .ToList(); 当我查看我的SQL Server时,我可以看到生成的代码正在执行SELECT *.* FROM Children此代码直接从我的类中获取,我已经validation了我的Skip / Take的顺序是在我的.ToList之前。 如果我删除.ToList,那行很快(并且没有SQL发送到我的数据库),但是当我尝试对结果进行foreach ,我得到了发送到我的DB的相同SQL: SELECT *.* FROM Children 。 使用.Skip和。在我的实体的导航属性上有什么特别的东西需要做吗? 更新 我将尝试获取实际生成的SQL,我目前没有为此设置。 我找到了第一个,因为它出现在SSMS的“最近的昂贵查询”列表中。 运行这个: var pChildren = this.Children //.Skip(skipRelated) //.Take(takeRelated) .ToList(); 返回〜4,000,000行,需要约25秒。 运行这个: var pChildren = this.Children //.Skip(skipRelated) .Take(takeRelated) .ToList(); 返回〜4,000,000行,需要约25秒。 正如我所说,我将抓住为这些生成的SQL并将它们构建起来。

entity framework – 包含导航属性的选择条件

假设我有这些简化的EF生成实体…… public class PurchaseOrder { public int POID {get;set;} public int OrderID {get;set;} public int VendorID {get;set;} public IEnumerable Orders {get;set;} } public class Order { public int OrderID {get;set;} public decimal Price {get;set;} public IEnumerable Items {get;set;} } public class Item { public int OrderID {get; set;} public string SKU {get;set;} public int VendorID […]

当仅填充相关对象的ID时,不加载导航属性

我正在努力建立多对一的关系。 表示“many”的实体具有指向父实体的导航属性。 它看起来像这样: public abstract class BaseEntity { /// /// Key Field for all entities /// /// [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] public Guid Id { get; set; } /// /// Date entity was created /// public DateTime DateCreated { get; set; } /// /// Last date Modified /// public DateTime DateModified { get; set; } /// /// […]