gpt4 book ai didi

c# - 当两个实体可以独立存在时, Entity Framework 核心一对零或一

转载 作者:太空宇宙 更新时间:2023-11-03 19:48:04 24 4
gpt4 key购买 nike

我有两个不同的实体,两者都可以在没有另一个的情况下生活:联系人(可以是个人、公司、学校等)和老师(不是真的,但为了理解问题)。

两个实体都可以存在于数据库中,彼此之间没有引用。但是,教师可能是也可能不是联系人。我有属性 ContactId?在 Teacher 和数据库上相应的可空字段上,但是没有定义 FK(不知道是什么,不确定我是否可以更改它,也不确定它在这里是否重要)。

当我检索联系人时,我想检索教师记录(如果存在),但它不起作用。目前没有错误,但它没有检索教师数据。这是我的类(class):

public partial class Contact
{
public int Id { get; set; }

[InverseProperty("Contact")]
public virtual Teacher Teacher { get; set; }
}

public partial class Teacher
{
public int TId { get; set; } // don't ask about the property name :(

public int? ContactId { get; set; }

[ForeignKey("ContactId")]
[InverseProperty("Teacher")]
public virtual Contact Contact { get; set; }
}

任何帮助或想法将不胜感激!

最佳答案

抱歉,还不能评论所以添加这个作为答案。

您的数据是否正确存储在数据库中?如果是,那么这只是一个查询问题。请记住,您需要显式加载 (.Include) 您想要从数据库中检索的属性。不幸的是,此时 Entity Framework 没有像以前版本那样的延迟加载。

示例:

.Include(contact => contact.Teacher)
.Include(teacher => teacher.Contact)

如果您正在处理 ICollection<Contact>ICollection<Teacher>您可以使用相同的包含属性,但子属性可能不会显示在 Intellisense 中。

关于c# - 当两个实体可以独立存在时, Entity Framework 核心一对零或一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42954916/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com