关于EntityFramework 4.1 中Code First方式的一些记录

1、在一对多关系中,我们需要指定一个外键,同时我们使用virtual 这个标识标识另外一个对象的引用

比如说以下模型

public class Phone
{
    public int Id{get;set;}
    public int PhoneBrandId{get;set;}
    public virtual PhoneBrand PhoneBrand{get;set;}
}
public class PhoneBrand{
    public int Id{get;set;}
    public string BrandName{get;set;}
    public ICollection<Phone> Phones
}
 
注意,在具体的想访问Phone对象中的PhoneBrand 之前,这个PhoneBrand 都是null 的,只有PhoneBrandId 是有值的
 
2、关于在两个对象中有重复引用的情况下的处理
比如说我们可能遇见这种情况,我们需要保存一篇文章的发表者和修改者
比如这里
public class Post
    {
        public int Id { get; set; }
        public string Title { get; set; }
        public DateTime DateCreated { get; set; }
        public string Content { get; set; }
        public int BlogId { get; set; }
        public Blog Blog { get; set; }
        public ICollection<Comment> Comments { get; set; }
        //此处是个典型,两个都引用了Person这个对象,但是请注意,这里并没有直接有id号
         public Person CreatedBy { get; set; }
        public Person UpdatedBy { get; set; }
    }
 
 
我们在做Person这个对象的时候,就需要使用[InverseProperty(对应的字段)]标记一下
public class Person
    {
        public int Id { get; set; }
        public string Name { get; set; }
        [InverseProperty("CreatedBy")]
        public List<Post> PostsWritten { get; set; }
        [InverseProperty("UpdatedBy")]
        public List<Post> PostsUpdated { get; set; }
    }
原文地址:https://www.cnblogs.com/jicheng1014/p/2051191.html