作为一个新手使用实体框架,已经几乎用只读集合开发了所有的类,我的问题是:
是否有办法在 Code First 中使用只读集合?
或者
是否应该在 Code First 中使用只读集合?
是否有办法在 Code First 中使用只读集合?
或者
是否应该在 Code First 中使用只读集合?
Entity Framework支持通过后备字段实现只读集合。
需要遵循一些约定:字段必须以'_'开头。请参见下面代码中的_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;}
}
没有办法在EF中使用只读集合,因为即使在从数据库读取实体的材料化过程中,EF也必须使用实体填充该集合或将可写集合分配给您的导航属性。