Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架代码优先关系:一对多对多实体_C#_Entity Framework - Fatal编程技术网

C# 实体框架代码优先关系:一对多对多实体

C# 实体框架代码优先关系:一对多对多实体,c#,entity-framework,C#,Entity Framework,这是我第一个使用EF的项目。我正在创建一个以电影和电视剧为实体的模型(这是一个示例)。两个人都有自己的笔记。注释也是一个实体。我想在电影->笔记和电视连续剧->笔记之间建立一对多的关系。如何做到这一点 注释中需要有一些内容来定义注释是属于电影还是系列 您不能创建具有两个不同父级且它们之间具有适当主键/外键关系的子级 假设Movies和TVSeries具有公共属性,一个选项是在Movies/TV关系中使用继承,并将注释挂起到超类上。比如: public abstract class Enterta

这是我第一个使用EF的项目。我正在创建一个以电影和电视剧为实体的模型(这是一个示例)。两个人都有自己的笔记。注释也是一个实体。我想在电影->笔记和电视连续剧->笔记之间建立一对多的关系。如何做到这一点


注释中需要有一些内容来定义注释是属于电影还是系列

您不能创建具有两个不同父级且它们之间具有适当主键/外键关系的子级

假设Movies和TVSeries具有公共属性,一个选项是在Movies/TV关系中使用继承,并将注释挂起到超类上。比如:

public abstract class EntertainmentBase
{
    public int Id { get; set; }
    public string Title { get; set; }
    // other common properties
}

public class Movie
{
    // properties specific to a movie
}

public class TVSeries
{
    // properties specific to a TV Series
}

public class Note
{
    public int NoteId { get; set; }
    public int BaseEntertainmentId { get; set; }
}

谢谢克雷格!对我来说,这是一个糟糕的问题。我正在使用的实体实际上没有任何公共属性,注释需要单独绑定到每个实体。我想我必须创建两个note实体:MovieNotes和TVSeriesNotes。您总是可以使用我在过去提到的多态外键创建Notes实体。这意味着您存储了父级的密钥,但没有任何声明性引用完整性,因此您的代码必须知道要连接到哪个父级。您还需要使用guid之类的东西作为父实体的主键,这样就不会发生冲突。这很有意义。此应用程序正在从ColdFusion移植到.NET,并且在Notes具有noteid、parentId和parentType属性的表中。我能够使用parentId和parentType组合检索必要的注释。您的示例在使用BaseEntertainment类时似乎遵循类似的模式。@Helius06-真的吗?没有公共属性吗?然而你却声称笔记很普遍?这是一项共同财产。标题怎么会不常见?像演员、剧组、导演这样的事情怎么会不常见?@ErikFunkenbusch——我在问题中提到的实体就是一个例子。我使用的实际实体是不同的,没有任何公共属性。注释是这些实体之间唯一的公共属性。