加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

database – 为什么Entity Framework类需要一个不相关类的虚拟成

发布时间:2020-12-16 07:18:19 所属栏目:asp.Net 来源:网络整理
导读:通过示例更容易显示 – 我正在使用代码优先构建数据库.我有以下课程: public class Blog { public int Id { get; set; } public string Title { get; set; } public string AuthorName { get; set; } public ListPost Posts { get; set; } public string Bl
通过示例更容易显示 – 我正在使用代码优先构建数据库.我有以下课程:

public class Blog
    {
        public int Id { get; set; }
        public string Title { get; set; }
        public string AuthorName { get; set; }
        public List<Post> Posts { get; set; }
        public string BlogCode
        {
            get
            {
                return Title.Substring(0,1) + ":" + AuthorName.Substring(0,1);
            }
        }
    }

    public class Post
    {
        public int Id { get; set; }
        public string Title { get; set; }
        public string Content { get; set; }
        public virtual Blog Blog { get; set; }
    }

我不明白为什么Post需要一个公共虚拟博客博客.它是否在数据库中充当外键以链接回Blog?看起来如果是这种情况你会使用Blog Id.

解决方法

它确实允许两个表相关并在Post上放置一个与Blog相关的外键.

拥有公共虚拟博客Blog {get;组;允许您从Post对象引用Blog对象,然后访问Blog的所有属性.例如. myPost.Blog.Id如果它使用公共虚拟int BlogId {get;组; },你将无法做到这一点,因为BlogId只是一个int值.

如果您的域对象是lazy loaded,则在使用该属性之前,myPost.Blog实际上不会使用来自数据库的数据(即没有调用Blog表)来补充.一旦使用它,Entity Framework将为您调用数据库,并使用来自Blog表的数据来保存对象.这是使用ORM的一部分……它允许您在处理数据库操作时专注于代码.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读