c# - 实体框架:具有同一类的一对多
问题描述
我有以下要求:基本上有两个类对象和属性。我想以这样一种方式对数据库进行建模,即一个对象可以具有许多易于执行的属性。但另一个要求是一个对象也可以有许多其他对象。这怎么可能实现,我需要在我的模型类中做什么来实现这一点?
到目前为止,我有这个:
public class Object
{
public int ID { get; set; }
public Attribute Attribute { get; set; }
}
public class Attribute
{
public int ID { get; set; }
public string Name { get; set; }
public string Type { get; set; }
public Object Object { get; set; }
}
解决方案
我相信您可以将新属性添加到您的对象类中,该属性针对您想要的对象,因此如下所示:
public class Object
{
public int ID { get; set; }
public Attribute Attribute { get; set; }
public Object Object { get; set; }
}
public class Attribute
{
public int ID { get; set; }
public string Name { get; set; }
public string Type { get; set; }
public Object Object { get; set; }
}
但是从提供的代码中,您的 Object 类仅引用 Attribute 类的一个实例,因此您没有您所说的 1:N 关系,而是 1:1!如果你想让 Object 类指向几个 Attributes 和几个 Object Instances,代码应该是这样的:
public class Object
{
public int ID { get; set; }
public Object ParentObject { get; set; }
}
public class Attribute
{
public int ID { get; set; }
public string Name { get; set; }
public string Type { get; set; }
public Object ParentObject { get; set; }
}
推荐阅读
- javascript - 使用 I18next-react 更改 URL 路径
- python - QWebEngine 初始化后注册对象
- dialogflow-es - DialogFlow 与 Twilio 文本消息的集成
- android - Kotlin,即使条件为假,代码也会进入 if statemant
- c - 从文件中获取单词并将它们与另一个文件中的文本进行比较
- python - 如何知道我的 Python 程序是否支持所有 Python 版本?点子
- php - 将 flatpickr(kt datapicker) 与 PHP 一起使用。时间禁用
- java - 没有名为 'mongoTemplate' 的 bean 可用
- python - 我不明白“.year:”如何在“datetime.datetime.today().year”行代码中工作
- c# - Autofac 依赖注入 - 数据不保存到数据库