关于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; }

    }

你可能感兴趣的:(framework)