EF Code First导航属性一对一关系中注意点及配置方法

Posted firstcsharp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EF Code First导航属性一对一关系中注意点及配置方法相关的知识,希望对你有一定的参考价值。

//学生
public class Student
    {
       [key]
        public int StId { get; set; }
        public int SocialSecurityNumber { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public virsual StPhoto Photo { get; set; }
    }
//学生图片
    public class StPhoto
    {
        [Key, ForeignKey("Student")]
        public int StId { get; set; }
        public byte[] Photo { get; set; }
        public string Caption { get; set; }
        public virsual  Student StudentInfo{ get; set; }
    }

无法确定类型“BreakAway.StPhoto”与“BreakAway.Student”之间的关联的主体端。必须使用关系 Fluent API 或数据注释显式配置此关联的主体端

因为Code First无法确认哪个是依赖类,必须使用Fluent API或Data Annotations进行显示配置。

使用Fluent API:

modelBuilder.Entity<StPhoto>().HasRequired(p => p.StudentInfo).WithOptional(p => p.Photo);

 

以上是关于EF Code First导航属性一对一关系中注意点及配置方法的主要内容,如果未能解决你的问题,请参考以下文章

EF Code First 导航属性 与外键

EF Code First 学习笔记:关系

EF 6.1 Code First 中与不同主键的一对一关系

EF Code First关系规则及配置

EF Code-First 一对一关系:多重性在 Role * in relationship 中无效

EF Code-First 学习之旅 配置一对一的关系