Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 实体框架代码第一个只读集合_Entity Framework_Entity Framework 4.1_Ef Code First - Fatal编程技术网

Entity framework 实体框架代码第一个只读集合

Entity framework 实体框架代码第一个只读集合,entity-framework,entity-framework-4.1,ef-code-first,Entity Framework,Entity Framework 4.1,Ef Code First,作为一个新的实体框架,并且已经开发了几乎所有具有只读集合的类,我的问题是: 有没有一种方法可以先在代码中使用只读集合 或 是否应首先将只读集合与代码一起使用?否,没有办法将只读集合与EF一起使用,因为即使在从数据库读取的实体的物化过程中,EF也必须使用实体填充该集合,或将可写集合分配给导航属性。实体框架支持只读收藏至 下面有一些约定:字段必须以“\u”开头。参见下面代码中的字段_posts public class Blog { public int BlogId { get; set;

作为一个新的实体框架,并且已经开发了几乎所有具有只读集合的类,我的问题是:

有没有一种方法可以先在代码中使用只读集合


是否应首先将只读集合与代码一起使用?

否,没有办法将只读集合与EF一起使用,因为即使在从数据库读取的实体的物化过程中,EF也必须使用实体填充该集合,或将可写集合分配给导航属性。

实体框架支持只读收藏

下面有一些约定:字段必须以“\u”开头。参见下面代码中的字段_posts

public class Blog
{
    public int BlogId { get; set; }

    private string _url;

    public string Url
    {
        get { return _url; }
        set { _url = value; }
    }

    //backing field
    private List<Post> _posts;

    public IReadOnlyList<Post> Posts => _posts.AsReadOnly();

}

public class Post{

  public int Id {get;set;}
  public string  Title {get;set;}
  public string Content {get;set;}

} 
公共类博客
{
public int BlogId{get;set;}
私有字符串url;
公共字符串Url
{
获取{return\u url;}
设置{uURL=value;}
}
//后场
私人名单职位;
public-IReadOnlyList Posts=>_Posts.AsReadOnly();
}
公营职位{
公共int Id{get;set;}
公共字符串标题{get;set;}
公共字符串内容{get;set;}
} 

谢谢。尽管我已经读过(并尝试过)关于代码的第一部分,这似乎是正确的答案,但我找不到任何关于这方面的文档。实际上,我现在不能给你任何链接。我将尝试搜索一点,但我现在还没有发现。谢谢,我添加了一个关于文档的新问题,因为我不想扩大这个问题:那么,在领域驱动的设计方法中,如何使聚合根强制执行不变量?这应该有可能让EF填充实体的“内部状态”,然后,开发人员可以按照他想要的方式公开它。作为参考,有一个较新的类似问题和一些有趣的答案: