Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.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# 关于EFCodeFirst中关系的新手_C#_.net_Ef Code First_Entity Framework 5 - Fatal编程技术网

C# 关于EFCodeFirst中关系的新手

C# 关于EFCodeFirst中关系的新手,c#,.net,ef-code-first,entity-framework-5,C#,.net,Ef Code First,Entity Framework 5,以下代码之间的区别是什么 public class Album { public int Id { get; set; } public string Title { get; set; } public List<Gener> Gener { get; set; } } public class Gener { public int Id { get; set; } public string Name { get; set; } }

以下代码之间的区别是什么

 public class Album
{
    public int Id { get; set; }
    public string Title { get; set; }
    public List<Gener> Gener { get; set; }
}

public class Gener
{
    public int Id { get; set; }
    public string Name { get; set; }
}

public class Albumcontext:DbContext
{
    public DbSet<Album> Albums { get; set; }
    public DbSet<Gener> Geners { get; set; }
}
公共类相册
{
公共int Id{get;set;}
公共字符串标题{get;set;}
公共列表生成器{get;set;}
}
公共类生成器
{
公共int Id{get;set;}
公共字符串名称{get;set;}
}
公共类Albumcontext:DbContext
{
公共数据库集相册{get;set;}
公共数据库集生成器{get;set;}
}

公共类相册
{
公共int Id{get;set;}
公共字符串标题{get;set;}
公共Gener Gener{get;set;}
}
公共类生成器
{
公共int Id{get;set;}
公共字符串名称{get;set;}
}
公共类Albumcontext:DbContext
{
公共数据库集相册{get;set;}
公共数据库集生成器{get;set;}
}

我知道关系2实体必须使用代码2,但如何使用列表或集合?

抱歉我的英语不好

第一个创建关系“一个
专辑
可以有多个
流派
”,第二个创建“一个
专辑
只能有一个
流派
,但一个
流派
可能与多个
专辑
”链接


看看你的例子,你会想要有多对多的关系,
Album
可能有一个或多个
Genre
Genre
可能与一个或多个
Albums
在第一个例子中,
Album
Gener
之间有多对一的关系。由于每个
genr
仅链接到一个
Album
genr
获取
Album
的外键


在第二种情况下,它只是一对一的关系,在
Album
模型中有一个对
Gener
对象的引用,因此
Album
获取
Gener
的外键,在
Album
类的第一个块中创建一个属性
Gener
,这是
genr
对象的列表-这意味着您希望一个
Album
包含多个
genr

public List<Gener> Gener { get; set; }
public Gener Gener { get; set; }
顺便说一句,你的类名有一个拼写错误——我想你想要的是体裁,而不是泛型

编辑:


要了解有关在实体框架中定义关系的更多信息,请选中。

这两个选项都没有意义,唱片集/流派是一种N:N类型的关系(流派可以链接到多张唱片,一张唱片可以跨越更多的流派)@MeysamSavameri正如Alex指出的那样,唱片集流派关系是多对多的-一张唱片可以定义多个流派(你知道,很难说一个乐队有时只演奏一种风格)一种风格当然可以有很多专辑。检查我的最新答案,我在那里添加了关于关系的文章链接。
public Gener Gener { get; set; }