相关疑难解决方法(0)

实体框架代码优先 - 流利Api与数据注释的优缺点

在使用Entity Framework代码优先创建数据库时,可以从代码中提取许多数据库模型.Fluent API和/或Attributes可用于微调模型.

与数据注释相比,Fluent Api有哪些优缺点?换句话说:即使在某些情况下可以使用这两种方法,在一种情况下,一种方法应该优先于另一种方法吗?

entity-framework ef-fluent-api

107
推荐指数
1
解决办法
3万
查看次数

实体框架中的ICollection <T> Vs List <T>

在我首先设计一些Entity Framework应用程序之前,我只看了几个网络广播.我真的没有阅读那么多文档,我觉得我现在正在为此而痛苦.

我一直List<T>在我的课堂上使用,而且效果很好.

现在我已经阅读了一些文档,并说它应该一直在使用ICollection<T>.我改为这个,它甚至没有导致模型上下文改变.这是因为兼并List<T>ICollection<T>继承IEnumerable<T>,这是EF实际需要的吗?

但是,如果是这种情况,为什么EF文档没有声明它需要IEnumerable<T>而不是ICollection<T>

在任何情况下,我做了什么都有任何缺点,或者我应该改变它?

c# ienumerable list icollection ef-code-first

98
推荐指数
4
解决办法
6万
查看次数

实体框架4.1虚拟属性

如果我在我的模型中声明实体关系为虚拟,则不需要Include在我的LINQ查询中使用该语句,对吧? -

例如:这是我的模型类:

public class Brand
{
    public int BrandID { get; set; }
    public string BrandName { get; set; }
    public string BrandDesc { get; set; }
    public string BrandUrl { get; set; }

    public virtual ICollection<Product> Products { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

现在,对于上面的模型类,我不需要使用var brandsAndProduct = pe.Brands.Include("Products").Single(brand => brand.BrandID == 22);.

相反,我可以使用简单的var brandsAndProduct = pe.Brands.Where(brand => brand.BrandID == 22);,我将在访问时自动使相关实体可用.

我的理解是正确的吗?

另外,请告诉我在什么情况下我应该更喜欢一个?

entity-framework-4.1

52
推荐指数
1
解决办法
3万
查看次数

为什么导航属性在EF中默认为虚拟

我在EF 6.x中使用了以下POCO类.

我的问题:为什么"博客"实体下的"帖子"的导航属性被声明为虚拟?

public class Blog 
{  
    public int BlogId { get; set; }  
    public string Name { get; set; }  
    public string Url { get; set; }  
    public string Tags { get; set; }  

    public virtual ICollection<Post> Posts { get; set; }  
}
Run Code Online (Sandbox Code Playgroud)

entity-framework navigation-properties

40
推荐指数
1
解决办法
2万
查看次数